这是一个“这可能吗?” 问题。我有一个适用于 android 手机的应用程序和另一个适用于 appengine 平台的应用程序。appengine的东西真的只是一个高分的db,而手机应用程序真的只是一个游戏。我可以使用一些 json/gson/httppost 的东西,将分数从游戏发送到数据库。现在我想确保我收集到的分数来自游戏,而不是某个人,可能有编程天赋但手头有太多时间。
这是问题。我可以使用 google OAuth 2.0 以某种方式验证我获得的分数来自运行我的游戏的手机吗?
我想我会这样做:我会使用 OAuth 从谷歌(从手机)获取某种令牌,然后将该令牌传递给 appengine 数据库(使用 json 记录),然后使用该令牌从谷歌上的用户。这可以像电子邮件地址一样简单。然后我会对自己说“好吧,只要我得到用户的电子邮件地址,我就知道用户正在使用游戏,我可以存储他们的分数。” 这听起来可能吗?我感觉一旦我使用手机从谷歌获取令牌,appengine 程序就无法使用它。
我在想我会使用与appengine db关联的client_id和client_secret(以及我需要的任何其他东西)从手机中获取令牌,然后当我通过json将令牌发送到appenging程序以获取电子邮件时地址,他们会从 appengine 工作。这似乎谷歌 OAuth 会以某种方式知道我试图从手机中获取令牌,然后会拒绝整个事情。再说一次,也许它会起作用。他们说虽然安卓手机不能保密(指的是client_secret)。
最后我想知道是否有任何其他更简单的方法来确保我在 appengine 端记录的分数真的来自运行我的游戏的安卓手机?我可以设置自己的身份验证方案吗?这有多难做到?