我目前正在使用后端服务,该服务允许用户使用客户端应用程序上的Google游戏库登录。
用户可以通过他们的gplay ID向我们发送信息,以便登录或恢复旧帐户。包括他们的gplay id,用户正在向我们发送以下内容;
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
x=int(raw_input())
print fact(x)
有没有办法在服务器上使用上述数据,并验证用户是否拥有他们发送给我们的GPlay ID?
目前,我没有看到任何方式来验证用户对其GPlay ID的所有权 - 我也没有看到任何明显的方式可以将其与客户端ID或身份验证代码进行比较,以确保用户使用其GPlay ID登录/恢复帐户的请求是合法的。
是否有人知道您可以使用上述数据验证用户的任何方式?
答案 0 :(得分:0)
服务器身份验证代码是您需要从客户端发送到后端服务器的唯一信息。要使用服务器身份验证代码:
将您的客户端应用和后端服务器应用与Play控制台上的相同游戏定义相关联。
在构建Google登录配置时,添加requestServerAuthCode()
选项,传入后端应用程序的客户端ID。
用户进行身份验证后,从GoogleAccount对象中获取serverAuthCode。
将authCode传递给后端服务器。
在服务器上,交换访问令牌的身份验证码。此令牌特定于您的应用程序和用户。将刷新令牌保存在服务器上,以备需要刷新访问令牌时使用。
获得访问令牌后,通过向www.googleapis.com/games/v1/applications/<app_id>/verify/
发送GET请求来验证令牌。这将返回有关经过身份验证的播放器的信息。
客户端和服务器端代码都有一个示例 https://github.com/playgameservices/clientserverskeleton