首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API本机-无法获取API

API本机-无法获取API
EN

Stack Overflow用户
提问于 2022-06-18 10:29:56
回答 1查看 116关注 0票数 0

我使用expo React Native开发我的应用程序,Redux用于状态管理,ExpressJS用于后端,MongoDB作为数据库。

我试图获取登录的用户数据,JWT令牌没有保存在cookie中。我不知道曲奇是否适用于反应本土化?我已经用postman测试了API,API正在工作,当我用postmanthunder-client VS代码扩展测试它时,JWT Tokens也保存在cookies中。以下是代码:

后端:

代码语言:javascript
复制
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,
  });
});

保留国:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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>
  );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-18 11:23:30

在ReactNative创建的移动应用程序中,没有像cookie这样的东西。你可以使用的是AsyncStorages的安卓/iOS和EncryptedStorage,搜索那些在npm和阅读文档,我保证你会找到你的答案!

如果希望只将令牌保存为一个会话,则还可以使用某种上下文,建议将存储用于要保存更长时间的值。

即使在应用卸载之后,EncryptedStorage也会保存值,所以要小心:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72668522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档