无法从rails服务器读取ios设置的cookie

时间:2016-06-29 06:36:53

标签: ruby-on-rails cookies react-native

我正在使用react-native-cookies。我可以使用getAll方法读取先前在服务器端设置的cookie。在本机中,我可以使用set命令设置一个名为'myCookie'的cookie,我可以使用getAll命令读取它。但是,我无法读取已由react-native app设置的服务器端的cookie。

index.ios.js

中的react-native代码
var CookieManager = require('react-native-cookies')
  componentWillMount () {
    CookieManager.set({
      name: 'myCookie',
      value: 'myValue',
      domain: 'ios app',
      origin: 'some origin',
      path: '/',
      version: '1',
      expiration: '2017-05-30T12:30:00.00-05:00'
    }, (err, res) => {
      console.log('cookie set!');
      console.log(err);
      console.log(res);
      console.log('my output');
    });
    CookieManager.getAll((cookie) => {
      let isAuthenticated;
      if (cookie && cookie.remember_token) {
        isAuthenticated = true;
      }
      else {
        isAuthenticated = false;
      }

      this.setState({
        loggedIn: isAuthenticated
      });
      console.log('GM:cookie remember isAuthenticated', cookie.remember_token, isAuthenticated,this.state.title,'myCookie',cookie.myCookie)
    });
  },

上一个控制台日志消息的输出是

GM:cookie remember isAuthenticated Object {domain: "localhost", value: "BAhbB2kHSSJFZmM3NDVkNTEwZTBkYTViZjU4NTJhOGQyZDNlMz…wY6BkVU--5888c15b42c6bdf3ca34c89f6554d2455d48c46b", name: "remember_token", path: "/"} true Sign In myCookie Object {domain: "ios app", value: "myValue", name: "myCookie", path: "/"}

显示正在设置myCookie对象,并且应用程序能够恢复rails服务器设置的remember_token。

以上代码在ios应用启动时执行。然后,ios应用程序打开一个webview组件,该组件在rails web应用程序上的ruby的会话控制器中调用新方法。在rails会话控制器中,我发现cookie['myCookie']nil。为什么cookie的设置方式是我无法从rails应用程序访问它?

1 个答案:

答案 0 :(得分:0)

我于2016年7月5日在react-native-cookie github网站上提出了一个issue,并且没有得到答案。网站上提出的缺乏响应和其他类似问题让我相信,目前,react-native-cookie根本不支持此功能。这不是对react-native-cookie团队的批评,任何开源项目都必须在某处划清界限。