2014-10-30 64 views
0

如果用户选择此选项,我在使用IBM Worklight开发的iOS和Android应用程序中需要记住用户标识。如何实现本地和远程登录页面的“记住我”功能?

我可以通过使用本地存储实现这一点,但问题是,我有登录页面:

  • 一个被放置在应用程序中,而
  • 二是托管在远程服务器上

根据应用程序会遇到的情况,将显示远程登录页面或显示本地登录页面。

如果我在本地页面上使用localStorage,则无法访问服务器端登录页面。所以我想使用移动设备上的一些存储/文件来存储我的本地和服务器登录页面都可以访问的用户ID。这可以使用worklight/phonegap存储吗?

更多解释:

远程登录页面托管在某些www.xxx.com域。我的要求是在启动应用程序时向用户显示本地登录页面,用户可以输入用户名和密码并选择记住我的选项并提交表单。然后用户登录并导航到某个xxx.com/yyy服务器页面。当用户点击注销时,从那里导航到www.xxx.com服务器上托管的远程登录页面。当用户已经检查过在本地页面中记住我的选项时,远程登录页面必须预先填充用户ID文本框。当用户在远程登录页面输入凭证并选择记住我复选框时,应该会发生同样的情况。所以当用户从后台关闭应用程序并重新启动时,应用程序用户将获得本地登录页面,我需要在上次输入时预先填充用户标识。

+0

在文件(本机)或浏览器上使用本地存储器,将不允许服务器获取此数据......您对“本地和服务器登录页面均可访问”是什么意思? – 2014-10-30 02:10:27

+0

添加更多关于“远程登录页面”的信息 - 你打算如何显示它?它是否是应用程序中基于适配器的身份验证的一部分?需要更多信息。 – 2014-10-30 05:51:51

+0

更新了我的问题。请告诉我,如果不清楚,谢谢。 – user3878988 2014-10-30 13:31:46

回答

0

简答:在我看来,没有。

较长的答案:我会解释什么,我认为使用您的方案:

远程登录页面上的一些www.xxx.com域名托管。我的要求 正在启动应用程序本地登录页面显示给用户, 那里用户可以输入用户名和密码并选择记住我 选项并提交表单。

到目前为止好。您可以将其存储在Web存储或JSONStore中或使用Cordova File API。捕获:所有这些仅适用于特定应用。

然后用户登录并导航到某个xxx.com/yyy服务器页面。当用户点击注销时,从 导航到www.xxx.com服务器上托管的远程登录页面 。由于用户已经选中 请记住我在本地页面的选项,远程登录页面必须在 之前填写用户标识文本框。

仍然合理。假设用户选择了“记住我”,那么您可以调整指向远程登录页面的URL并使用它作为参数usernamepassword发送。假设将有一种机制来处理远程页面上的这些机制。

这并不是免费的午餐,虽然。

而同样的情况应该发生。因此,当用户从杀死背景 应用和将重新启动应用程序的用户将获得 本地登录页面,在这里我需要预先填充用户ID最后 一次他进入。

这也是IMO的一个问题,因为任何应用程序都是沙盒 - 无论是浏览器应用程序还是Worklight应用程序,它们都是沙盒。因此您不能只访问网站X,并为其创建一些localStorage,并期望该数据可用于属于另一个应用的另一个WebView。这是沙盒的重点,以保护应用程序。

在这种情况下,其中远程“页”将保存数据,只有Web存储可用反正JSONStore需要工作灯API,当你加载外部网站,这是不可用的。

注: