我使用expo React Native开发我的应用程序,Redux用于状态管理,ExpressJS用于后端,MongoDB作为数据库。
我试图获取登录的用户数据,JWT令牌没有保存在cookie中。我不知道曲奇是否适用于反应本土化?我已经用postman测试了API,API正在工作,当我用postman或thunder-client VS代码扩展测试它时,JWT Tokens也保存在cookies中。以下是代码:
后端:
exports.getUserDetails = catchAsyncErrors(async (req, res, next) => {
const user = await User.findById(req.user.id);
if (!user) {
return next(new ErrorHandler("User not found", 404));
}
res.status(200).json({
success: true,
user,
});
});保留国:
export const LoadUser = () => async (dispatch) => {
try {
dispatch({ type: "LOAD_USER_REQUEST" });
const { data } = await axios.get(`${API_URL}/api/auth/me`);
dispatch({
type: "LOAD_USER_SUCCESS",
payload: data.user, //Not loading data.
});
} catch (error) {
dispatch({
type: "LOAD_USER_FAIL",
payload: error.response.data.message,
});
}
};前端App.js文件:
import { Provider as RNP_Provider } from "react-native-paper";
import { Provider } from "react-redux";
import Index from "./Index";
import { LoadUser } from "./actions/authAction";
import store from './store'
import { useEffect } from "react";
export default function App() {
useEffect(() => {
store.dispatch(LoadUser());
}, [])
return (
<Provider store={store}>
<RNP_Provider>
<Index />
</RNP_Provider>
</Provider>
);
}发布于 2022-06-18 11:23:30
在ReactNative创建的移动应用程序中,没有像cookie这样的东西。你可以使用的是AsyncStorages的安卓/iOS和EncryptedStorage,搜索那些在npm和阅读文档,我保证你会找到你的答案!
如果希望只将令牌保存为一个会话,则还可以使用某种上下文,建议将存储用于要保存更长时间的值。
即使在应用卸载之后,EncryptedStorage也会保存值,所以要小心:)
https://stackoverflow.com/questions/72668522
复制相似问题