通过Android应用程序将Google Plus安全登录到Web应用程序

通过Android应用程序将Google Plus安全登录到Web应用程序,android,google-plus,Android,Google Plus,我正在开发一个Android应用程序,我希望用户使用Google+登录来登录我的应用程序 目前,我在PHP登录脚本中传递从Google+获得的用户名。脚本将加载具有用户ID的新会话 目前,该网站非常不安全:任何知道其他用户用户名的人都有可能以他们的身份登录 这样做的安全方法是什么 如何针对我的服务器授权用户 在我看来,Google+纯粹是一个社交网络API…Google Plus使用OAuth 2.0 它具有身份验证令牌。您可以使用auth令牌从Android或服务器访问Google Plus

我正在开发一个Android应用程序,我希望用户使用Google+登录来登录我的应用程序

目前,我在PHP登录脚本中传递从Google+获得的用户名。脚本将加载具有用户ID的新会话

目前,该网站非常不安全:任何知道其他用户用户名的人都有可能以他们的身份登录

这样做的安全方法是什么

如何针对我的服务器授权用户

在我看来,Google+纯粹是一个社交网络API…

Google Plus使用OAuth 2.0

它具有身份验证令牌。您可以使用auth令牌从Android或服务器访问Google Plus。
在服务器上,您可以通过使用该令牌访问Google来验证令牌。

Google+登录使用OAuth 2.0-这意味着用户不直接向您的服务器进行身份验证。取而代之的是,他们通过谷歌认证并获得一个由谷歌签名的令牌。你的应用程序(从Android上的Google Play services)获得该令牌,并可以将其传递给你的服务器,作为用户通过Google认证的证据。然后将用户Google+ID与您自己服务器上的新用户ID或现有用户ID关联。因此,无论何时,只要用户能够证明他们通过了Google针对特定Google+用户ID的身份验证,您就可以将他们视为在您自己的服务器上进行了身份验证

要实现,您有几个选项,具体取决于您构建系统的方式:

  • 当您只想向自己的服务器验证您的用户时:在Android设备上,您的用户通常已经通过Google验证,因为他们在帐户管理器中有Google帐户。您的应用程序可以利用这一点,在帐户管理器中为用户获取令牌,而无需用户键入任何密码。在用户单击应用程序中的“使用Google登录”后,您可以使用
    GoogleAuthUtils.getToken()
    为他们获取ID令牌并将其传递给服务器。在验证Google签名后,您的服务器可以安全地将用户会话与相应的用户帐户和权限关联(即将会话视为已验证)。获取令牌和验证令牌的过程由和讨论
  • 如果您想在您自己的服务器上验证用户身份,并从您的服务器调用Google+API:那么您应该查看developers.Google.com上的文档。这与选项一采用的方法相同,但除此之外,当用户首次登录时,Android应用程序会请求授权码而不是ID令牌。服务器可以将其交换为访问令牌和刷新令牌,而您的服务器可以使用该令牌代表用户进行API调用,例如,通过使用
  • 如果您想在自己的服务器上验证用户身份,同时也要从Android设备上调用Google API:那么除了使用自己的服务器验证用户身份所采取的步骤之外,您还应该使用Google Play服务进行Google API调用
  • 例如,您可能希望在客户端或服务器上调用Google API,以便可以使用来自用户Google+配置文件的数据预先填充注册表