我正在使用react-native-cookies。我可以使用getAll方法读取先前在服务器端设置的cookie。在本机中,我可以使用set命令设置一个名为'myCookie'的cookie,我可以使用getAll命令读取它。但是,我无法读取已由react-native app设置的服务器端的cookie。
index.ios.js
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应用程序访问它?
答案 0 :(得分:0)
我于2016年7月5日在react-native-cookie github网站上提出了一个issue,并且没有得到答案。网站上提出的缺乏响应和其他类似问题让我相信,目前,react-native-cookie根本不支持此功能。这不是对react-native-cookie团队的批评,任何开源项目都必须在某处划清界限。