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