【问题标题】:Validating/Authenticating a Google Play Games Services ID?验证/验证 Google Play 游戏服务 ID?
【发布时间】:2017-05-10 12:48:04
【问题描述】:

我目前正在使用后端服务,该服务允许用户使用客户端应用程序上的 Google 游戏库登录。

用户可以通过他们的 gplay id 发送给我们,以便登录或恢复旧帐户。包括他们的 gplay id,用户正在向我们发送以下内容;

GPlay ID: gxxxxxxxxx
GPGS client id: xxx-xxxxx.apps.googleusercontent.com
GPGS auth code: 4/xxxxxxxx
message_salt: <ByteString@xxxxxx>

有没有办法在服务器上使用上述数据,并验证用户拥有他们发送给我们的 GPlay ID?

目前,我没有看到任何方法来验证用户对其 GPlay ID 的所有权 - 我也没有看到任何明显的方法可以将其与他们的客户端 ID 或身份验证代码进行比较,以确保用户的登录请求/restore an account using their GPlay ID is legal.

有谁知道您可以通过上述数据验证用户的任何方式吗?

【问题讨论】:

    标签: java android google-play google-play-services google-play-games


    【解决方案1】:

    服务器身份验证代码是您需要从客户端发送到后端服务器的唯一信息。使用服务器验证码:

    1. 将您的客户端应用和后端服务器应用与 Play 控制台上的相同游戏定义相关联。

    2. 在构建 Google 登录配置时,添加 requestServerAuthCode() 选项,传入后端应用程序的客户端 ID。

    3. 用户验证后,从 GoogleAccount 对象获取 serverAuthCode。

    4. 将 authCode 传递给您的后端服务器。

    5. 在服务器上,将身份验证代码交换为访问令牌。此令牌特定于您的应用程序和用户。将刷新令牌保存在服务器上,以备您需要刷新访问令牌时使用。

    6. 获得访问令牌后,通过向 www.googleapis.com/games/v1/applications/&lt;app_id&gt;/verify/ 发送 GET 请求来验证令牌。这将返回有关经过身份验证的玩家的信息。

    有一个客户端和服务器端代码的示例,位于 https://github.com/playgameservices/clientserverskeleton

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-15
      • 2018-02-09
      • 2019-10-30
      • 1970-01-01
      • 2014-08-16
      • 2014-02-02
      • 2015-10-24
      相关资源
      最近更新 更多