Google登录无法获取令牌:unauthorized_client错误求助
兑换授权码为令牌时收到错误:
{ "error_description": "Unauthorized", "error": "unauthorized_client" }
结合你手动在OAuth Playground能正常获取令牌的情况,问题大概率出在客户端配置或授权URL参数的一致性上,以下是具体解决步骤:
验证重定向URI配置
登录Google Cloud Console,进入「APIs和服务」→「凭据」,找到你的OAuth 2.0客户端ID,检查已授权的重定向URI列表是否包含https://developers.google.com/oauthplayground。如果没有,添加该地址并保存,等待5-10分钟让配置生效。确认OAuth客户端类型
确保你创建的是Web应用类型的OAuth客户端ID。桌面应用、移动端应用等其他类型的客户端,即使重定向URI正确,也会因授权规则限制触发unauthorized_client错误。核对授权URL参数与Playground一致
对比OAuth Playground手动设置的参数,确保代码中生成授权URL的参数完全匹配:access_type已设置为offline(你的代码配置正确)scope已包含https://www.googleapis.com/auth/drive(你的代码配置正确)- 若Playground中启用了「Force approval prompt」,可在代码中添加
prompt: 'consent'参数,确保授权流程一致:const url = oauth2client.generateAuthUrl({ access_type:'offline', scope:scopes, prompt: 'consent' // 匹配Playground的强制同意设置 })
确保授权码有效性
OAuth授权码仅一次有效,且有效期约10分钟。兑换令牌时必须使用刚获取的全新授权码,避免重复使用过期或已消耗的授权码。
内容的提问来源于stack exchange,提问作者Alireza hoseini
相关产品推荐
相关产品推荐

