2014-01-08 58 views
0

我正在用Android WebView封装包装Rails移动网站,但它也应该通过浏览器提供。该网站正在使用Google/FB OAuth身份验证,但这不是必需的。Android WebView封装身份验证方法

使用包装器时,我希望用户已经使用其主电子邮件登录。 是否有任何安全的方法来实现这一点?某些不允许在浏览器中使用此方法的东西?

我在考虑发送某种校验和/安全令牌,但这可能很容易被反向设计。

设备ID和Android ID的身份验证足够了吗?我的意思是,这些都是公开的其他应用程序,所以我猜可能不会。也许有什么是独特的应用程序实例和私人?

+1

请参阅:http://stackoverflow.com/questions/9966831/using-google-account-to-log-in-on-android-application –

回答

2

在您的服务器可以验证的Android应用程序实例中,没有任何东西会自动保密。使用Google/Facebook OAuth登录是合理的选择。

您可以使用Facebook SDK for Android来允许用户使用他们的Facebook帐户登录,并以a.ch.在评论中提到,您可以通过Play服务SDK执行相同的操作,以通过他们的Google帐户登录。

在这两种情况下,这都是有效的,因为存在由身份服务器(facebook.com或google.com)信任的本地代理应用程序(Facebook或Google Play服务)。代理应用程序具有用户的凭证,可以验证请求访问的应用程序的身份,并可以显示用户可以批准/拒绝请求的视图。一旦身份服务器知道用户已经登录设备,知道您的应用的身份,并知道用户批准了登录请求,它就可以通过代理安全地将一个令牌发送回您的应用。该令牌允许您的应用程序请求和用户批准的任何权限。

然后,您的WebView可以将该令牌包含在对您的Rails服务器的初始请求中,该服务器使用Facebook/Google检查该令牌。从这一点来看,代码应该与现有的桌面网络类似,至少在用户认证方面是这样。

您可以从https://developers.facebook.com/android/下载适用于Android的Facebook SDK,您可以在Extras下的Android SDK管理器('android sdk')中获得Google Play服务SDK。两者都有帮助你入门的教程。