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

Google OAuth如何实现仅撤销指定scope而非全部授权的能力

Google OAuth 单Scope权限撤销(减量授权)实现方案
  • 先排查你当前误撤销全量权限的原因:绝大多数情况是直接调用了Google的全量撤销接口https://oauth2.googleapis.com/revoke?token={access_token/refresh_token},这个接口的作用就是直接撤销用户授予你应用的所有权限,只要调用就会清掉所有授权范围,自然没办法单独移除指定Scope。
  • Google OAuth本身没有直接删除单个授权Scope的接口,减量授权的标准实现逻辑是重新走授权流程覆盖原有授权范围:
    • 先在你自己的服务端维护每个用户当前已授权的Scope列表,不要仅存储Access Token/Refresh Token
    • 用户发起部分权限撤销请求时,先从本地存储的Scope列表中删除用户要移除的目标Scope,仅保留需要保留的Scope项
    • 用剩下的Scope构造新的OAuth授权链接,必须在链接中添加参数include_granted_scopes=false(这个参数默认值为true,会自动带上用户之前已经授权过的所有Scope,设为false才会强制覆盖旧的授权范围)
    • 用户完成新的授权后,原有未出现在本次请求中的Scope就会自动失效,实现单独移除指定权限的效果
  • 如果用户需要撤销全部授权,再使用原来的全量撤销接口即可。

注:如果用户在授权弹窗中取消了新的授权请求,原有授权范围不会发生变更,不会影响现有功能的正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:57:01