没有身份验证令牌的登录设计方法

时间:2011-04-27 18:15:37

标签: android login user-accounts

我正在为我的公司编写一个Android 2.2应用程序。该应用程序只是发送http get / put / post请求来执行某些操作。由于用户名和密码必须包含在每个http请求中,因此没有真正的登录过程。

我可以看到Android中有AccountManager。但由于每个http请求都需要用户名和密码(而不是某些身份验证令牌),它如何适应?显然,我希望它与其他Android应用程序类似,以便用户只需要第一次登录一次,并且在重新启动应用程序时不会再次提示输入用户名/密码。

任何建议表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:6)

我已经开发了类似的应用程序,所以这就是我在psuedocode中解决它的方法。

  

但是因为用户名和密码   (而不是一些身份验证令牌)   每个http请求都需要,怎么可以   它适合吗?

1#:创建第一页,登录页面。让这个View包含两个EditText s(用户名和密码)和一个Button(登录按钮)。

2#:在Button点击上发出登录请求,看看您是否使用 HTTP标题名称获得了正确的Cookie这与您登录时获得的值相对应。通过网络工具找到有效信息,例如 WireShark 。有关登录过程的更多信息,请check out my other answer here

3#:如果用户名和密码产生了正确的Cookie信息,保存 SharedPreferences中的用户名和密码,并通过您的提供其值应用程序,将其分配到Applicationread this for more info regarding global variables。如果值不正确且您没有获得有效的Cookie,请通过消息(Toast?)向用户显示该值。

4#:当您尝试来获取授权信息时,提出请求,方法是使用Application类中保存的信息。

5#:下次您正在启动应用程序,请检查onCreate(),检查SharedPreferences是否包含用户信息,如果是,请执行以下操作:请参阅步骤6#,否则等待用户开始输入信息。

6#:如果登录页面已确定用户信息,请将SharedPreferences分配给全局Application状态,完成登录Activity并启动授权Activity 代替。这将发生得非常快,因此用户不会注意到显示“登录页面”。

7#(额外步骤):在授权的Activity中,确保从Application实例中获取用户信息。当对授权内容执行第一次请求时,验证任务,就像您在步骤#3 按顺序中所做的那样来控制用户是否已更改网站上的密码。如果用户更改了任何信息,就会开始抓取回复,您可以随意做任何事情。