我正在开发Android应用,我希望用户使用Google+登录登录我的应用。
目前,我在PHP登录脚本中传递了我从Google+获得的用户名。该脚本使用用户的ID加载新会话。
目前,该网站非常不安全:知道其他用户的用户名的任何人都可能以其身份登录。
有什么安全的方法可以做到这一点?
如何针对我的服务器授权用户?
对我而言,Google +纯粹是一种社交网络API ...
答案 0 :(得分:18)
Google+登录使用OAuth 2.0 - 这意味着用户不会直接对您的服务器进行身份验证。相反,他们会与Google进行身份验证,并获取由Google签名的令牌。您的应用获取该令牌(来自Android上的Google Play服务),并可将其传递给您的服务器,作为用户通过Google验证的证明。然后,您可以将用户Google+ ID与您自己服务器上的新用户ID或现有用户ID相关联。因此,只要用户能够证明他们通过Google对特定的Google+用户ID进行了身份验证,您就可以将其视为在自己的服务器上进行身份验证。
要实施,您可以选择一些选项,具体取决于您的系统架构:
GoogleAuthUtils.getToken()
为其获取ID令牌并将其传递给您的服务器。验证Google签名后,您的服务器可以安全地将用户会话与相应的用户帐户和权限相关联(即将会话视为已通过身份验证)。 Tim Bray here和Ian Barber here讨论了获取令牌并验证令牌的过程。 您可能希望在客户端或服务器上进行Google API调用,以便您可以使用用户Google+个人资料中的数据预先填充注册表单。
答案 1 :(得分:0)
Google Plus使用OAuth 2.0 https://developers.google.com/+/api/oauth
它有身份验证令牌。您可以使用身份验证令牌从Android或服务器访问Google Plus。 在服务器上,您可以通过使用该令牌访问Google来验证令牌。