我看到一些与此问题相关的类似问题,但这些问题太老了,无法考虑,所以我会再次提问。
我有一个Android应用程序需要对Web服务进行身份验证,以交换将存储在Google App Engine上的数据。为此,我想使用OAuth2.0在我的应用和Web服务之间提供身份验证机制,如下所示:https://developers.google.com/identity/protocols/OAuth2WebServer?hl=en和https://developers.google.com/identity/protocols/CrossClientAuth
我已经在Web服务端对令牌进行了验证,如文档中所示。我不清楚的唯一部分是在Android上获取刷新令牌并在Web服务上验证后,如何在GAE Web服务和Android上执行操作。
问题是:
答案 0 :(得分:1)
在研究了这个之后,这个认证流程我使用:
当您在后端服务器上收到令牌时,您应该:
通过HTTPS POST收到ID令牌后,您必须验证令牌的完整性。要验证令牌是否有效,请确保满足以下条件:
- ID令牌是使用适当的Google公钥(以JWK或PEM格式提供)正确签名的JWT。
- ID令牌中的aud值等于您应用的一个客户端ID。此检查是必要的,以防止发布到恶意应用程序的ID令牌用于访问应用程序后端服务器上相同用户的数据。
- ID令牌中的iss值等于accounts.google.com或https://accounts.google.com。
- ID令牌的到期时间(exp)尚未通过。 如果您的身份验证请求指定了托管域,则ID令牌的hd声明与您的Google Apps托管域匹配。