尝试使用phonegap对我现有的Web应用程序进行简单的登录


Trying to do a simple login with phonegap to my existing web application

>我有一个非常大的操作网络移动优化网站。

我想开发一个基本的混合应用程序,也许使用phonegap来验证我的大型Web应用程序的用户,也许使用Web视图。

你可能会问我为什么要这样做?我希望用户能够在移动环境中体验我的 Web 应用程序,并将其登录名和用户名存储在本地,这样他们就不必登录到 Web 应用程序,因为会话在 Web 应用程序中的 5 分钟后过期。
此外,移动应用程序可以简单地将磁贴添加到他们的设备以方便使用。

我无法转换整个网络应用程序,因为它太大了。我使用MySQL作为外部数据库和PHP/HTML/JavaScript。我找不到任何有用的 phonegap 基本登录示例,这些示例既可以登录到外部数据库,又在本地将凭据存储在混合应用程序设备上。

这里有什么想法吗?当数据库中的用户/密码更改时,身份验证必须与混合和 Web 应用程序更新/同步。

哦,

天哪,你肯定在这个上面打开了一罐蠕虫!

有几种方法可以做到这一点:

使用 JWT 身份验证。在登录时发送令牌,并让令牌的生存期指示登录的有效期,但 ALWAY 验证令牌,如果签名不匹配,则永远不要信任令牌有效负载。这样做的好处是,即使应用程序已硬停止,会话在令牌中规定的持续时间内仍处于活动状态(只要将令牌保存在设备上,并在每次请求时发送令牌)。

至于 cookie 方法,我个人在将会话持续到科尔多瓦应用程序的硬停止之后遇到了问题(这意味着关闭手机会删除 cookie)。如果这对你来说没问题,那么jQuery的ajax有最好的解决方案。在beforeSend中将xhr.withCredentials设置为true,会话详细信息将发送到服务器。但我想强调的是,与代币方法相比,这种会话方法不是永久性的。

除了这个会话之外,只需将页面中的HTML代码替换为您想要显示的内容在Cordova中就足够了。 这意味着您无法发送<header>。您必须仅发送<body>中的内容,不包括标签本身。如果您使用的是jQuery Mobile,所有这些都将进入您的data-type="page"

编辑:将您的 cordova 应用程序视为一个 Web 浏览器,而不是一个必须拥有所有 html 才能有效的应用程序

希望这有帮助