Sencha Touch 和远程服务器上的身份验证

Posted

技术标签:

【中文标题】Sencha Touch 和远程服务器上的身份验证【英文标题】:Authentication on Sencha Touch and remote Server 【发布时间】:2012-09-12 08:33:59 【问题描述】:

我想就使用 PhoneGap 和 Sencha Touch 的应用程序以及带有 Active Directory 的 .NET 中的服务器的身份验证机制获得您的反馈。

因此我们需要将用户凭据存储在移动设备上,这样用户就不必在每次希望使用该应用程序时重新输入登录名和密码。

01 - IDEA - Cookies

据我了解,Sencha Touch 没有直接用于管理 Cookie 的库。 为了使用 cookie,我应该安装 Sencha 的基础库“Sencha Ext Js”并使用 Ext.util.Cookies 类。这个库不应该是免费的。

恐怕 CROS 域在使用 cookie 和 ios 安全问题方面仍然存在问题。

此外,Phonegap 不提供任何 cookie 抽象,因为已经有很多其他工具可以做到这一点(Phonegap 只是封装了智能手机功能,而不是基本的浏览器功能)。 我可以使用潜在的 jQuery,也许可以尝试 jquery-cookie 插件。

02 - IDEA - html5 本地存储

Sencha Touch 为 HTML5 本地存储提供了一个 API,因此我可以将凭据保存在本地存储中,而不是编写一个 cookie。 即使设备关闭,浏览器也应将本地数据保留一个未定义的数量。 当用户点击应用程序时,我可以将本地数据发送到服务器,服务器将对用户进行身份验证。

尽管有这种机制,但我还是有安全问题。 一种) - 将用户名和密码作为纯文本存储在 Cookie 或本地存储中并转发到服务器。 不涉及加密,身份验证应该工作。缺点:很容易读取 Cookie 和本地存储,因此它不是最先进的安全技术。

B) - 我将用户名存储为纯文本,而不是密码,我将“表单身份验证票”存储在 Cookie 或本地存储中并转发到服务器。 “表单身份验证票证”涉及服务器上的加密。优点:高安全性,缺点:需要时间来开发它。 注意:安全性,票证使用服务器的 Machine.config 文件的配置元素进行加密。


我的问题:

您对这种情况有任何经验吗? 您有更好的方法吗?

【问题讨论】:

你最后用了什么? 【参考方案1】:

几天前我已经将简单登录项目发布到github,您可能会发现它很有帮助。它适用于 Webkit 浏览器和 iPhone。 android 未经测试。

【讨论】:

与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?. 感谢 Oleg 的发帖,我投了赞成票,但这并没有具体回答我的问题。你使用什么场景? 我正在使用带有 localStorage 的场景。如果您可以运行 Limple 登录,您可能会注意到凭据存储在那些。如果你愿意,你可以改进一个。例如。存储 SHA1 哈希而不是普通值等... 感谢 olegtaranenko 的最后评论,您听说过 IOS 上有关本地存储的安全问题吗?该存储似乎不再适合长时间存储数据。在 Android 上它应该可以正常工作。 moneytoolkit.com/2012/04/apple-ios-html5-localstorage-is-broken你有这方面的问题吗? 我听说过这个问题,但它不是安全 一个 IMO...如果您的 iOs 凭据将被删除,用户只需再次登录...如果您想修复必须使用Phonegap插件的“错误”,但我从未使用过它。

以上是关于Sencha Touch 和远程服务器上的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch AJAX 请求问题:ReferenceError:找不到变量:请求

Sencha Touch 2 & Spring Security 跨域登录

Sencha Touch 登录验证与 MSSQL 数据库

Sencha Touch 读取远程 XML 数据

Sencha Touch 使用 mvc 动态使用商店?

Sencha Touch 存储同步