我正在开发一个PhoneGap应用程序,并要求我的用户使用OAuth2通过Google登录。这可以通过JavaScript直接实现吗?我几乎没有使用JavaScript(和jQuery)的经验。
有哪些选择?我想到了一个繁琐的替代方案,包括将用户名/密码发布到我托管在服务器上的应用程序,然后安装登录。然后,PhoneGap应用程序必须询问服务器验证是否成功。但是,我希望有一种更简单的方法。
在PhoneGap应用上通过Google登录的最佳方式是什么?
答案 0 :(得分:8)
我设法让它运转起来!我在这里发表我的想法,因为我在搜索网络数小时后很难找到答案。
重要的步骤是:
window.plugins.childBrowser.onLocationChange = function(fooUrl) { console.log(fooUrl); }
fooUrl
如果您仍然不知道如何操作,请查看this Android app。 (有很多的代码,它看起来似乎势不可挡,所以我建议只把它作为最后的手段)
答案 1 :(得分:4)
Google不允许您通过直接处理用户凭据来执行直接身份验证。相反,Google希望您执行身份验证协议,通常是OAuth 2.0。您可能听说过的其他流行的身份验证协议是OpenID 1.0,2.0,OpenID Connect,SAML 2.0,ID-FF等。这些协议会将用户重定向到身份提供商(在本例中为Google),然后将其发回给您您可能用来信任用户的断言。使用API(如Google),您可以使用OAuth的授权功能,该功能可为您提供可在身份验证后与所有Google API一起使用的令牌。
使用PhoneGap和移动应用程序,情况与典型的OAuth设置略有不同。
在您的情况下,浏览器处于受控环境,您的应用中,您可以
这些示例在OAuth 2.0规范中含糊其词,但在特定用例中没有任何帮助。通常,最好的选择并不完美(从用户的角度来看)。
我最近写了一篇关于如何使用Phonegap和ChildBrowser for iOS工作的教程。