如何将cookie设置为用extaim用expo设置



我很难让cookie工作,在服务器端,我使用它们来验证用户从req.cookies获取。

这是我当前在react Native中的login.js文件上将其设置的方式:

import Cookies from "universal-cookie";
const cookies = new Cookies();
 cookies.set("token", token, {
                expires: 7, // 7 days
                path: "/"
                //,secure: true // If served over HTTPS
   });

当我在此页面上调用cookies.get("token")时,这很好。但是,当我导入,设置const并在另一个页面上呼叫时,令牌不会显示...

另外,当我这样的获取时:

fetch("http://192.168.0.115:3000/myTransactions/", {
      credentials: "same-origin",
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json"
      }
    })

服务器未接收任何cookie。我什至更改了凭据说。

我在Windows上使用Expo和我的终端来运行它,而无需使用Android Studio或Xcode。我不确定这是否可能是一个问题。

任何想法!

谢谢

react-native-keychain比cookie更安全!

第二,您是否尝试过Asyncstorage?这是内置的" localstorage"中内置的本机。在本质上。我认为这是您要寻找的。

// to set
AsyncStorage.setItem('@app:session', token);
// to get
AsyncStorage.getItem('@app:session').then(token => {
  // use token
});

如果您的设置看起来像这样,那么您只是将令牌值通过作为标头发送,则可以以最安全/最方便的任何格式存储此信息。

在此示例中,auth可以是获取这些选项中的一个。

localStorage.set('token', 38573875ihdkhai)
createCookie('ppkcookie' 7asdfasdf);
export const userFetchRequest = () => (dispatch, getState) => {
  let {auth} = getState();
  return superagent.get(`${__API_URL__}/user/me`)
    .set('Authorization', `Bearer ${auth}`)
    .then(res => {
      dispatch(userSet(res.body));
      return res;
    });
};

您可以使用cookie或将令牌存储在a localstorage 中的Web应用程序中。

但对于 asyncstorage 的React本机应用程序的使用将是更好的解决方案。

关于 asyncstorage

异步是一个简单,未加密的,异步的,持久的, 该应用程序全局的键值存储系统。它应该使用 而不是localstorage。

在iOS上,异步构成的本机代码支持较小的值 在单独文件中的序列化字典和较大的值中。在 Android,Asyncstorage将根据什么使用RockSDB或SQLite 可用。

另外,异步有很简单的API:

const TOKEN = "TOKEN";
// save token
AsyncStorage.setItem(TOKEN, token);
// get token
AsyncStorage.getItem(TOKEN).then(token => {
  // token value could be used
});

如果您想 asyncstorage 安全性,您可以通过链接找到更多信息。

相关内容

  • 没有找到相关文章