You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Youtube API OAuth授权未返回refresh_token却返回id_token问题咨询

问题原因分析

1. OpenID scope被自动添加的原因

当授权请求中包含email或profile这类用户身份信息相关的scope时,Google OAuth服务会自动补充openid scope。因为email和profile属于OpenID Connect(OIDC)规范下的用户身份字段,Google的OAuth系统会默认将这类请求关联到OIDC流程,因此自动注入openid scope,不管是否显式声明。

2. 返回id_token而非refresh_token的核心原因

  • OIDC流程的默认行为:由于请求被自动纳入OIDC流程(因包含openid scope),按照OIDC规范,响应中会返回id_token用于用户身份标识,这是正常的OIDC流程输出。
  • refresh_token未返回的触发条件:
    虽然指定了access_type=offline,但如果用户此前已经为你的应用授权过相同(或兼容)的scope,且本次请求没有携带prompt=consent参数强制用户重新授权,Google不会重复返回refresh_token。同一用户同一应用的refresh_token只会在首次授权或**强制重新授权(带prompt=consent)**时生成并返回。

3. 额外排查点

  • 检查OAuth客户端后台,确认是否有配置限制refresh_token的生成;
  • 如果需要获取新的refresh_token,可以在授权URL中添加prompt=consent参数,强制用户重新授权,此时响应会包含refresh_token(同时仍会保留openid scope)。

内容的提问来源于stack exchange,提问作者acacia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:52:44