我正在使用 expoReact Native來開發我的應用程式、Redux狀態管理、ExpressJS后端、MongoDB資料庫。
我正在嘗試獲取登錄的用戶資料,JWT令牌未保存在 cookie 中。我不知道 cookie 是否適用于本機反應?我已經用 測驗了 API postman,API 正在作業,并且當我用VS Code 擴展測驗它時也JWT Tokens保存在 cookie 中。這是代碼:postmanthunder-client
后端:
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>
);
}
uj5u.com熱心網友回復:
在 ReactNative 中創建的移動應用程式中沒有 cookie 這樣的東西。您可能使用的是 AsyncStorages for Android/iOS 和 EncryptedStorage,在 npm 中搜索并閱讀檔案,我保證您會在那里找到答案!
如果您希望只為一個會話保存令牌,您還可以使用某種背景關系,建議將商店用于您想要保存更長時間的值。
即使在應用程式卸載后,EncryptedStorage 也會保存值,所以要小心那個:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493082.html
標籤:javascript 节点.js 反应式 还原 世博会
上一篇:如何在react-native或reactjs中維護reactusestate中的先前資料和當前資料?
下一篇:使用firebase身份驗證時createUserWithEmailAndPassword失敗錯誤和AsyncStorage警告
