背景:
我需要在我的服务器后端进行身份验证,以便我知道客户端是真实的。在我的Android游戏中,我通过GoogleApiClient
连接到Games.API
。
我只想要一次登录,我想通过Games.API
来实现这一点,因为这给了我很多优势(Google Play Games排行榜、成就等)
我已经能够使用GoogleAuthUtil.getToken(...)
获得授权令牌,我可以在登录Games.API
后执行此操作,似乎这给了我一个令牌。目前为止还不错。
但谷歌说这不安全,并建议我改用ID令牌流程。但是,据我所知,这种方法需要我使用
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
这意味着需要在Games.API
的基础上再进行一次登录。此外,不可能将Games.API
和Auth.GOOGLE_SIGN_IN_API
同时添加到同一个GoogleApiClient
中!
好的,那么升级至最新的google-play-services(至少r29),使用Games.getGamesServerAuthCode(...)
可以使用Games.API
来获取服务器的授权令牌。但是这有两个问题:(1)需要Android 6.0或以上版本,从而排除了80%的市场;(2)已经被弃用!
问题:
我应该使用GoogleAuthUtil.getToken(...)
吗?如果不是,那么在我只想使用Games.API
登录时,我的选项是什么?
通过登录,我的意思是向用户呈现登录界面。我不介意登录其他东西,只要用户不必与登录交互即可...
注意:
我最初提出了这个问题,当时我刚开始学习。当前的问题希望能澄清情况。