Android WebView包装器身份验证方法

Android WebView包装器身份验证方法,android,authentication,webview,Android,Authentication,Webview,我正在用Android WebView包装器包装Rails移动网站,但它也应该可以通过浏览器获得。该网站正在使用Google/FB OAuth身份验证,但这不是必需的 使用包装器时,我希望用户已经使用其主要电子邮件登录。 有没有安全的方法来实现这一点?不允许在浏览器中使用此方法的内容 我正在考虑发送某种校验和/安全令牌,但这可以很容易地进行反向工程 使用设备id和android id进行身份验证是否足够?我的意思是,这些都可以公开用于其他应用程序,所以我想可能不会。也许应用程序实例中有一些独特且

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

使用包装器时,我希望用户已经使用其主要电子邮件登录。 有没有安全的方法来实现这一点?不允许在浏览器中使用此方法的内容

我正在考虑发送某种校验和/安全令牌,但这可以很容易地进行反向工程


使用设备id和android id进行身份验证是否足够?我的意思是,这些都可以公开用于其他应用程序,所以我想可能不会。也许应用程序实例中有一些独特且私有的东西?

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

您可以使用Facebook SDK for Android来允许用户使用其Facebook帐户登录,并作为a.ch登录。在评论中提到,您也可以使用Play Services SDK通过其Google帐户登录

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

然后,您的WebView可以在向rails服务器发出的初始请求中包含该令牌,rails服务器将通过Facebook/Google检查该令牌。从这一点来看,代码应该类似于现有的桌面web,至少在用户身份验证方面是如此

您可以从下载Facebook Android SDK,也可以在Android SDK管理器(“Android SDK”)的Extras下获得Google Play services SDK。两者都有教程可帮助您入门。

请参见: