我的应用程序将处理敏感数据(私钥),因此必须以安全的方式访问此数据。我想将用户身份验证负担转嫁给Google,让他们根据验证其Google帐户信息来确定用户是否可以访问该应用。我正在研究使用WebView并使用OpenID协议,但作为一个更基于Web的协议,我仍在考虑其他选项。另一个要求也是用户必须在每次希望访问应用程序时进行身份验证,如果应用程序暂停,可能需要90秒窗口。
使用OpenID的WebView是我最好的解决方案还是任何人都可以推荐更好的方法?
答案 0 :(得分:7)
我认为最好的方法是使用AccountManager。 AccountManager实际上拥有用户的Google帐户中的用户和密码,但您无法访问该信息。您可以向AccountManager询问用户拥有的某个帐户的令牌。如果您需要Google帐户的令牌,则必须要求提供“com.google”帐户。当您向AccountManager询问令牌时,将启动一项活动,询问用户是否允许该应用程序访问其帐户。
此外,您可以要求提供对某种服务有用的令牌。如果您想要访问Blogger信息。您可以要求“博主”许可。 AccountManager将返回的令牌仅适用于该服务。
令牌在一段时间后过期,因此您必须检查。当令牌不再起作用时,您必须告诉AccountManager该令牌不再有效。下次您要求提供令牌时,AccountManager会为您提供一个新令牌。
在Google上查找AccountManager。
http://developer.android.com/reference/android/accounts/AccountManager.html
适用于Android 2.1和高级版本。