如何在phoneGap中维护会话

时间:2015-01-08 13:48:25

标签: javascript cordova jquery-mobile mobile

我无法找到任何方法来解决这个问题。 我在PhoneGap中开发了一个单页应用程序,它只是登录模块,登录后我把它扔到网站上。 现在问题是我还必须保持登录状态。 例如,如果用户退出应用程序而没有注销,那么他不应该登录我的登录界面,应该直接访问网站。

在android中,我们可以使用我知道的共享偏好来处理它,但我是PhoneGap的新手。此外,当用户点击退出我的登录屏幕时(不是特定网站的登录屏幕!!!)。

我用Google搜索了但找不到任何有用的信息

3 个答案:

答案 0 :(得分:8)

你可以使用localStorage,因为Nurdin说它不那么持久。

在这里阅读更多相关信息。 http://www.w3schools.com/html/html5_webstorage.asp

所以你必须在登录页面之前设置条件来检查用户是否登录,即

if(window.localStorage.getItem("loggedIn") == 1) {
// Logged In
// Redirect to first page after logged in.
}
else
{
// Redirect to login page.
}

在登录页面中,登录成功后。

window.localStorage.setItem("loggedIn", 1);
window.localStorage.setItem("username", document.getElementsByName("usernametextbox").value);

等。

在退出页面中清除此localStorage值。

window.localStorage.removeItem("loggedIn");
window.localStorage.removeItem("username");

答案 1 :(得分:0)

您可以将登录状态和会话ID存储在sqlLite或LocalStorage中。 在启动应用程序时,您可以检查已使用的存储空间中的值。

供您参考,您可以查看此链接

http://docs.phonegap.com/en/edge/cordova_storage_localstorage_localstorage.md.html

答案 2 :(得分:0)

使用localStorage代替sessionStorage。为了更好,请使用sqlite。 SessionStorage仅暂时与localStorage进行比较。但是sqlite更持久。

localStorage语法

localStorage.userId

sessionStorage语法

sessionStorage.userId

源码

https://github.com/brodysoft/Cordova-SQLitePlugin