如何实现"记住我"本地和远程登录页面的功能?

时间:2014-10-30 01:32:50

标签: authentication cordova ibm-mobilefirst

我在使用IBM Worklight开发的iOS和Android应用程序中要求在用户选择此选项时记住用户ID。

我可以通过使用localStorage来实现这一点,但问题是我有两个登录页面:

  • 一个放在应用程序中,
  • 第二个托管在远程服务器上

根据应用程序符合的条件,将显示远程登录页面或显示本地登录页面。

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

更多解释:

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

1 个答案:

答案 0 :(得分:0)

简短回答:在我看来,没有。

更长的回答:我将使用您的方案解释我的想法:

  

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

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

  

然后用户登录并导航到某个xxx.com/yyy服务器页面。从   当用户点击注销时,它会导航到远程登录页面   它托管在www.xxx.com服务器上。用户已经检查过   记住远程登录页面必须在本地页面中的选项   填充用户ID文本框。

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

但这不是免费的。

  

当用户在远程输入凭据时,应该会发生同样的情况   登录页面并选择记住我复选框。所以当用户杀死了   应用程序用户将从后台和重新启动应用程序   获取本地登录页面,我需要预先填充用户ID   他进入的时间。

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

在这种情况下,远程“页面”将保存数据,但无论如何只有Web存储可用,因为JSONStore需要Worklight API,这在加载外部网站时不可用。

注意: