集成Google登录遇Error: deleted_client错误,求解决方案
解决Google登录的
deleted_client错误与401授权问题 首先,Error: deleted_client这个错误已经给出了明确指向——你当前代码里使用的OAuth客户端ID对应的凭据已经被删除(或失效),这直接引发了401未授权的问题。咱们一步步排查解决:
1. 确认OAuth客户端的存活状态
- 登录Google Cloud Console,找到你集成登录功能的项目,进入API和服务 > 凭据页面。
- 在OAuth 2.0客户端ID列表里,定位你当前代码中使用的那个客户端ID:
- 如果找不到,说明这个客户端确实被删除了,直接重新创建一个Web应用类型的OAuth客户端,配置好
Authorized JavaScript origins和Redirect URIs。 - 如果能找到,检查它的状态是不是已启用,有没有被意外禁用(有时候可能误操作点了禁用按钮)。
- 如果找不到,说明这个客户端确实被删除了,直接重新创建一个Web应用类型的OAuth客户端,配置好
2. 彻底替换凭据(别手动输入!)
- 复制当前有效客户端的
Client ID和Secret Key,直接替换你代码/配置文件里的旧值。手动输入很容易出现大小写、字符遗漏的问题,复制粘贴是最稳妥的方式。 - 注意区分客户端类型:确保你用的是Web应用类型的客户端凭据,而不是iOS/Android或者其他类型的,不同类型的凭据权限范围不匹配。
3. 核对Redirect URIs的配置细节
看你提供的请求详情里,redirect_uri=storagerelay://https/www.#mysite.com?id=auth357681这里有个小疑点:域名里的#是不是多余的?正常域名应该是www.mysite.com吧?
- 先确认这个
redirect_uri的完整格式,然后在Google控制台的对应客户端配置里,把这个URI准确添加到Authorized redirect URIs列表中。 - 另外,
Authorized JavaScript origins只需要填你的网站根域名(比如https://www.mysite.com),不要加路径、哈希或者storagerelay这类前缀。
4. 清除缓存,避免旧凭据干扰
- 浏览器的缓存和Cookie可能存了旧的客户端信息,导致请求还是用失效的ID。建议用无痕模式测试,或者手动清除浏览器的缓存、Cookie后再试。
- 如果你的后端服务有缓存配置,记得重启服务,确保加载的是最新的Client ID和Secret。
5. 再次确认API启用状态
- 回到Google Cloud Console的API和服务 > 已启用的API和服务页面,确认
Google Identity API(或者OAuth 2.0 API)是处于启用状态的。有时候切换项目或者更新配置后,API可能会被意外关闭。
6. 排查第三方Auth库的配置(如果用了的话)
如果你是通过第三方Auth库(比如各类OAuth封装库、Firebase Auth等)实现的登录,检查库的配置:
- 是不是正确指向了新的客户端ID?
- 有没有配置错误的redirect_uri模板?比如有些库会自动生成
storagerelay开头的URI,要确保这个格式已经被Google控制台允许。
常见坑提醒
- 别在多个Google Cloud项目里混淆客户端ID:比如你可能用了另一个项目的凭据,但那个项目的客户端已经被删除了。
- 避免误删客户端:创建客户端后,最好给它起个明确的名字(比如“我的网站Google登录”),防止后续误操作删除。
内容的提问来源于stack exchange,提问作者Himanshu_Singh_PM
相关产品推荐
相关产品推荐

