本地开发时Google OAuth授权页未展示敏感与受限Scope问题
Google OAuth测试模式下敏感Scope未显示授权页的解决办法
检查Scope与客户端ID的关联
确认Google控制台「API和服务」→「OAuth同意屏幕」中,已添加的敏感Scope(如https://mail.google.com/)已保存,且你在Supabase中配置的Google OAuth客户端ID,属于当前同意屏幕所在的项目。若Scope未保存或客户端ID归属错误,会导致授权页不加载敏感Scope。添加测试用户
测试模式下,仅OAuth同意屏幕「测试用户」列表中的账号,才能看到敏感Scope的授权提示。即使是项目所有者账号,未加入测试用户列表也无法触发敏感Scope的授权页。清除Google授权缓存
浏览器缓存的旧授权信息会覆盖新Scope配置。访问https://myaccount.google.com/permissions,找到你的应用并移除授权,再重新发起OAuth流程。代码中已添加的prompt: "consent"参数可强制触发同意页,但手动清除缓存更彻底。在Supabase中显式指定Scope
Supabase默认仅请求Google基础Scope,需在代码中手动声明敏感Scope才能触发对应授权提示,修改后的代码如下:const { data, error } = await supabase.auth.signInWithOAuth({ provider: "google", options: { redirectTo: "http://localhost:3000/callback", scopes: "https://mail.google.com/", // 显式添加需要的敏感Scope queryParams: { access_type: "offline", prompt: "consent", }, }, });等待配置同步
Google控制台的敏感Scope配置可能存在延迟,最长需24小时完成同步。可尝试重新保存OAuth同意屏幕配置,或等待一段时间后再测试。
内容的提问来源于stack exchange,提问作者yumba
相关产品推荐
相关产品推荐

