rails apiから取得したデータが一部取得できない
解決したいこと
フロントで、railsからのレスポンスデータのcurrent_userからログイン回数を取得したい。
reactとrails apiでポートフォリオ制作に挑戦しています。
認証機能にdevise,devise_token_authを使用しています。
今回初回ログインユーザに対してログイン後にポップアップを表示したく思い、deviseのtrackableの機能を使い,
sign_in_countが1のユーザーに対してフロントで条件分岐させようと試みていますが、レスポンスデータからログイン回数が取得できません。
以下のようにnameや自分で追加したカラムなどは取得できるのですが、sign_in_countがレスポンスに含まれておらず、どのようにrailsからフロントに渡せばいいのかがわからずつまずいています。
フロントで受け取ったレスポンスデータ
データベースには正しくカラムが存在している
データベースには正しく存在しているので、rails consoleでUser.find(1).sign_in_countとすると正しいログイン回数が取得できます。
以下、データの取得に関連すると思われる部分のコードです。
export const SignIn = () => {
const { setIsSignedIn, setCurrentUser, currentUser } = useContext(AuthContext);
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const history = useHistory();
const generateParams = () => {
const signInParams = {
email: email,
password: password,
};
return signInParams;
};
const handleSignInSubmit = async (e) => {
e.preventDefault();
const params = generateParams();
try {
const res = await signIn(params);
if (res.status === 200) {
Cookies.set("_access_token", res.headers["access-token"]);
Cookies.set("_client", res.headers["client"]);
Cookies.set("_uid", res.headers["uid"]);
setIsSignedIn(true);
setCurrentUser(res.data.data);
}
} catch (e) {
console.log(e);
}
};
(以下略)
import { client } from "./client";
import Cookies from "js-cookie";
// サインイン
export const signIn = (params) => {
return client.post("/auth/sign_in", params);
};
//Cookie情報を送信して、対応するユーザー情報を返す
export const getCurrentUser = () => {
if (
!Cookies.get("_access_token") ||
!Cookies.get("_client") ||
!Cookies.get("_uid")
)
return console.log("ログイン中のユーザーはいません。");
return (
client.get("/auth/sessions", {
headers: {
"access-token": Cookies.get("_access_token"),
"client": Cookies.get("_client"),
"uid": Cookies.get("_uid"),
},
})
)
};
class Api::V1::Auth::SessionsController < ApplicationController
def index
if current_api_v1_user
render json: {status:200, current_user: current_api_v1_user }
else
render json: {status: 500, message: "ユーザーが存在しません"}
end
end
end
自分で試したこと
trackableの導入方法
current_userに含まれるデータは何なのか
trackableの活用方法
ログイン回数の取得方法
について検索しましたが、答えには辿り着けませんでした。
読みづらい質問かとは思いますが、ご教授いただけたら幸いです。