关于Google OAuth2.0 Token API返回未文档化id_token字段的问询
Google OAuth2 Token响应中id_token字段相关疑问解答
为什么响应里会出现id_token?
你调用的POST https://www.googleapis.com/oauth2/v3/token接口返回id_token,本质是因为你的授权请求中包含了OpenID Connect(OIDC)相关的scope(比如openid)。OIDC是基于OAuth2的身份扩展协议,当请求包含openid scope时,Google的token端点会自动返回id_token——这是OIDC的标准行为,并非未文档化的内容。
id_token的结构是否发生了变化?
你给出的id_token结构完全符合OIDC标准和Google的官方规范:
sub是OIDC定义的用户唯一标识符,属于标准字段,它是用户在Google身份系统中的永久唯一ID,不会随时间或用户信息变更而改变。- 其他字段如
iss(签发者)、aud(受众)、iat(签发时间)、exp(过期时间)等也都是OIDC的标准声明。 hd字段是Google针对Google Workspace(原G Suite)用户返回的额外字段,用于标识用户所属的企业域名。
你觉得文档里没提到,大概率是因为你查看的是纯OAuth2的Web Server流程文档,而id_token属于OIDC扩展内容,需要查看对应的OIDC文档。
为什么在你参考的文档中未提及id_token?
你参考的是OAuth2 Web Server流程的说明文档,该文档聚焦于纯OAuth2的授权码交换逻辑,而id_token是OIDC的特性。Google将OAuth2和OIDC的文档分开维护,所以纯OAuth2流程文档不会详细覆盖OIDC相关的id_token内容。
总结
id_token并非未文档化字段,它是OpenID Connect标准的核心组件,只要授权请求包含openidscope就会返回。- 你看到的
sub等字段都是OIDC标准定义的,没有发生未公开的变化,Google的实现完全符合规范。 - 若要深入了解
id_token的结构、验证方式等细节,需参考Google的OpenID Connect相关文档。
内容的提问来源于stack exchange,提问作者Nom1fan
相关产品推荐
相关产品推荐

