我的应用程序将处理敏感数据(私钥),因此必须有一个安全的方式访问这些数据。我想把用户认证的负担转嫁给谷歌,让他们在验证自己的谷歌账户信息的基础上,确定用户是否可以访问应用程序。我在研究使用webview和openid协议,但作为一个更基于web的协议,我仍在考虑其他的选择。另一个要求是,用户每次想访问应用程序时都必须进行身份验证,如果应用程序暂停,可能需要90秒的窗口。
带openid的webview对我来说是最好的解决方案还是有人能推荐更好的方法?
最佳答案
我认为最好的方法是使用accountmanager。accountmanager实际上拥有用户google帐户中的用户和密码,但是您不能访问这些信息。您可以向accountmanager请求用户拥有的某个帐户的令牌。如果你想要一个谷歌账户的代币,你必须要一个“com.google”账户。当您向accountmanager请求令牌时,将启动一个活动,询问用户是否希望允许应用程序访问其帐户。
此外,您还可以请求一个对某种服务有用的令牌。如果你想访问博客信息。你可以请求“博主”的许可。accountmanager将还给您的令牌只对该服务有效。
令牌将在一段时间后过期,因此您必须检查。当令牌不再工作时,您必须告诉accountmanager,该令牌不再有效。下次你要一个代币时,会计经理会给你一个新的。
在谷歌找会计经理。
http://developer.android.com/reference/android/accounts/AccountManager.html
它适用于android 2.1和更高版本。
关于android - 使用Google帐户进行安全的Android身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5709252/