我正在为Jquery Mobile构建一个移动界面,用于已经存在的需要用户身份验证的Web应用程序,但我无法解决实现登录过程的最佳方法。JQuery Mobile - 用户登录最佳实践
我不太关心服务器端认证,而是如何在用户端实现它。
一些试验后,似乎有三种选择:
标准形式POST \重定向提交:
- 禁用自动阿贾克斯与data-ajax="false"
- 用户提交,在服务器检查凭据,然后在成功时发送重定向到应用程序,或在失败时返回登录页面。Ajax的方法与通过Ajax
$.mobile.changePage
- 发送的用户名/ passwd的系上的反应,或者与$.mobile.changePage
或显示错误消息Ajax的方法添加应用的头版与
window.location.replace
-Similar到选项2,但使用window.location.replace
添加应用程序的首页使用POST的Ajax方法;仅在登录失败时重定向
- 为表单提交启用ajax。
- 在服务器端,将您的用户身份验证功能与应用程序的条目页面相结合,以便只在设置了表单字段时执行。
- 登录成功后,返回应用程序的首页。
- 登录失败后,重定向回登录页面。
- 如果表单值未设置,请检查用户是否已正确登录,然后返回标准输出页面。如果未登录,则重定向回登录。
一些注意事项:
- 它必须使用POST来避免登录数据附加到URL
-Maintaining正确的后退按钮功能让导航,用户友好的似乎是一种非常棘手。
-I'd想使过程容易流动尽可能用尽可能少的页面重新加载尽可能
任何想法?
编辑:
我找到了第四种方法,这可能是最好的方法。它避免了由POST /重定向方法导致的后退按钮功能问题。如果用户在第一次尝试时进行身份验证,则平稳页面转换将保持整个时间。否则,登录成功后,页面转换流程将持续保持。此外,所有JQM的内置错误处理功能仍然可用。
谢谢你的回应。我实际上会提出,需求实际上非常标准,以至于最佳实践可以适用于许多场景 - 在移动设备上基于Web的用户/密码身份验证,本地存储无法使用。方法1肯定是明确的,但我试图找到的是哪种方法具有最大的优势。 – user1091949 2012-02-11 04:30:54
好的。检查我的编辑。 – 2012-02-11 04:48:21