我在使用IBM Worklight开发的iOS和Android应用程序中要求在用户选择此选项时记住用户ID。
我可以通过使用localStorage来实现这一点,但问题是我有两个登录页面:
根据应用程序符合的条件,将显示远程登录页面或显示本地登录页面。
如果我在本地页面上使用localStorage,则无法访问服务器端登录页面。所以我想在移动设备上使用一些存储/文件来存储我的用户ID,该用户ID可以访问本地和服务器登录页面。这可以使用worklight / phonegap存储吗?
更多解释:
远程登录页面托管在某些www.xxx.com域上。我的要求是在启动应用程序时向用户显示本地登录页面,用户可以输入用户ID和密码并选择记住我选项并提交表单。然后用户登录并导航到某个xxx.com/yyy服务器页面。当用户点击注销时,它会导航到www.xxx.com服务器上托管的远程登录页面。当用户已经检查过我在本地页面中的选项时,远程登录页面必须预先填充用户ID文本框。当用户在远程登录页面中输入凭据并选择“记住我”复选框时,应该会出现相同的情况。因此,当用户从后台杀死应用程序并重新启动时,应用程序用户将获得本地登录页面,我需要在上次输入时预先填充用户ID。
答案 0 :(得分:0)
简短回答:在我看来,没有。
更长的回答:我将使用您的方案解释我的想法:
远程登录页面托管在某些www.xxx.com域上。我的要求 在启动应用程序时,向用户显示本地登录页面, 用户可以输入用户ID和密码并选择记住我 选项并提交表格。
到目前为止一切顺利。您可以将其存储在Web Storage或JSONStore中,也可以使用Cordova File API。捕获:所有这些仅适用于特定应用。
然后用户登录并导航到某个xxx.com/yyy服务器页面。从 当用户点击注销时,它会导航到远程登录页面 它托管在www.xxx.com服务器上。用户已经检查过 记住远程登录页面必须在本地页面中的选项 填充用户ID文本框。
仍然合情合理。假设用户选择了“记住我”,因此您可以调整指向远程登录页面的URL,并将其作为参数与username
和password
一起发送。假设有一种机制来处理远程页面上的那些。
但这不是免费的。
当用户在远程输入凭据时,应该会发生同样的情况 登录页面并选择记住我复选框。所以当用户杀死了 应用程序用户将从后台和重新启动应用程序 获取本地登录页面,我需要预先填充用户ID 他进入的时间。
这也是IMO的一个问题,因为任何应用程序都是沙箱 - 无论是浏览器应用程序还是Worklight应用程序,它们都是沙箱。所以你不能只是去网站X,并为它创建一些localStorage,并期望数据可用于属于另一个应用程序的另一个WebView。这是沙盒的全部要点,以保护应用程序。
在这种情况下,远程“页面”将保存数据,但无论如何只有Web存储可用,因为JSONStore需要Worklight API,这在加载外部网站时不可用。
注意:
username
和password
,您可能希望以某种方式加密so JSONStore and WL.EncryptedCache are your options, rather than plain Web Storage。