当我登录我的PhoneGap应用程序时,一切正常。我可以在当前会话中发出请求,并且我已通过身份验证。如果我完全关闭应用程序并在我的会话消失后重新启动它,那么带有connect.sid的cookie在应用程序重新启动之间不会持续存在 - 这是我无法解决的电话空白问题。
我应该如何从Cookie中获取connect.sid?
我应该如何将其存储在localStorage中?
如何在应用启动时将connect.sid添加回Cookie?
答案 0 :(得分:1)
我使用LocalStorage
并且它仍然存在,但如果手机需要更多存储空间,则可以清除您的应用浏览器缓存,包括Cookie,LocalStorage
和/tmp
文件。
答案 1 :(得分:-1)
假设您的会话ID已在变量session_id
中。您只需使用setItem和getItem方法与本地存储进行交互。
设置变量(注意:变量必须是字符串,因为localstorage只能处理这种类型。如果你想存储一个对象或数组,你需要用JSON.stringify()
将它转换成json)
window.localStorage.setItem("sessionid", session_id);
从本地存储中获取您的sessionid
var id= window.localStorage.getItem("sessionid");
答案 2 :(得分:-1)
将session_id保存在本地存储中不是更好的方法。当您的服务器重新启动时,我将被清除。 您需要将会话数据保存在数据库中。这是mongodb的例子。没有额外的编码,只需在会话声明中传递您的数据库连接字符串。
var MongoStore = require('connect-mongo')(express);
app.use(express.session({
secret : "",
store : new MongoStore({
db : "database_name",
host : "database_host",
username : "database_username",
password : database_password,
auto_reconnect : true
})
}));
答案 3 :(得分:-1)
您可以使用以下程序:
deviceready
处理程序中从持久存储中读取会话cookie,然后在文档上设置它,这与前一个项目符号相反(允许您处理应用程序重启)。