如何在phoneGap中保持会话
Posted
技术标签:
【中文标题】如何在phoneGap中保持会话【英文标题】:How To maintain session in phoneGap 【发布时间】:2015-03-06 15:47:33 【问题描述】:我找不到任何方法来处理这个问题。 我在 PhoneGap 中开发了一个单页应用程序,它只是登录页面。登录后,我将其重定向到网站。 现在问题是我必须在 App 内保持登录状态。 例如,如果用户在没有注销的情况下退出应用程序,那么他不应该在下次启动时获得我的登录屏幕。它应该直接进入网站。
在 android 中,我们可以使用我知道的共享偏好来处理它,但我对 PhoneGap 完全陌生。此外,当用户单击重定向网站中的注销时,应显示我的应用程序的登录屏幕而不是网站的登录屏幕。
我用谷歌搜索了它,但找不到任何有用的东西
【问题讨论】:
【参考方案1】:您可以使用 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");
【讨论】:
亲爱的@KRIZTE 我没有注销页面或任何东西我的主要问题是如何让该用户点击注销链接(在该网站中)我只做了登录页面之后没有别的我把它扔到网站上。您的回答非常可观,但我想知道用户何时单击注销链接。你明白我的意思???【参考方案2】:您可以将登录状态和会话 ID 存储在 sqlLite 或 LocalStorage 中。 在启动应用程序时,您可以检查您已使用的存储空间中的值。
供您参考,您可以查看此链接
http://docs.phonegap.com/en/edge/cordova_storage_localstorage_localstorage.md.html
【讨论】:
它是单页应用程序。然后我直接扔到网站上。 这也适用于 SPA。您必须在显示初始屏幕时检查登录状态,如果用户已登录 - 将其重定向到其他网站 - 到您的登录页面 当用户点击该网站中的注销时我应该怎么做?我的 SPA 是如何知道用户点击了注销的? 一种解决方案是:您可以使用 iframe 在您的应用程序中打开该站点,这将保留控件,您可以随时访问本地存储 实际上我没有得到它你能举个例子吗?我按照你的建议使用 LocalStorage,所以如果我成功了,那就勾选接受。 :)【参考方案3】:使用localStorage
代替sessionStorage
。为了更好,请使用sqlite
。 SessionStorage 只是暂时与 localStorage 比较。但sqlite更持久。
localStorage 语法
localStorage.userId
sessionStorage 语法
sessionStorage.userId
sqlite
https://github.com/brodysoft/Cordova-SQLitePlugin
【讨论】:
当用户点击该网站中的注销时我该怎么办?我的 SPA 是如何知道用户点击了注销的? 如果您不介意,我可以提供任何关于此的示例。对不起,但我是全新的 phoneGap 所以......以上是关于如何在phoneGap中保持会话的主要内容,如果未能解决你的问题,请参考以下文章
在我单击注销按钮之前,如何在 php 中保持会话? [复制]