Google Oauth从访问中删除范围

时间:2017-04-21 07:47:54

标签: oauth google-api oauth-2.0 google-oauth google-oauth2

假设我有一个应用程序,我的应用程序已运行多年,要求用户访问。有问题的应用程序要求获得更多访问权限,或者应用程序已经更改,不再需要它请求的某些范围。

违规范围已被删除,因此不再提示新用户访问我们不需要的访问权限。

但是,我们现在有许多老用户,他们的刷新令牌授予我们不需要的访问权限。我想通过从授权中删除不再需要的范围来解决这个问题。最简单的解决方案可能是撤销他们的令牌并要求他们重新授权,但我认为这对客户来说是不可接受的。

范围示例:

  

https://www.googleapis.com/auth/analytics查看和管理您的Google Analytics数据

该应用程序要求完全访问权限。该应用程序不需要完全访问

  

https://www.googleapis.com/auth/analytics.readonly查看您的Google Analytics数据

是否可以从授权中删除scopes?我知道可以request additional permissions,但我还没有找到一种方法来删除过多的权限。

2 个答案:

答案 0 :(得分:2)

您可以通过编辑其清单文件来显式设置脚本项目使用的范围。清单字段 oauthScopes 是项目使用的所有范围的数组。要设置项目的范围,请执行以下操作:

  1. 在Apps脚本编辑器中打开脚本项目。
  2. 在菜单中,选择文件> 项目属性
  3. 选择范围标签。
  4. 查看脚本当前所需的范围,并确定需要进行哪些更改。完成后点击取消
  5. 如果左侧导航栏中未显示清单文件 appsscript.json ,请选择查看>显示清单文件菜单项。
  6. 在左侧导航栏中选择 appsscript.json 文件以将其打开。
  7. 找到标有oauthScopes的顶级字段。如果它不存在,您可以添加它。
  8. oauthScopes 字段指定字符串数组。要设置项目使用的范围,请将此数组的内容替换为您希望其使用的范围。例如:
  9. enter image description here

    1. 使用 Ctrl + S 或菜单栏中的保存文件图标保存清单文件。
    2. 此处有更多信息:https://developers.google.com/apps-script/concepts/scopes

答案 1 :(得分:0)

不,这是不可能的。

范围不是嵌套的。因此,虽然逻辑上analytics.readonlyanalytics的子集,但这不是内部查看的方式。因此,没有从analytics降级到analytics.readonly,因为它们是完全独立的范围。因此,由于您必须通过附加范围流程来获取analytics.readonly,因此您可以撤销现有令牌,这是删除现有analytics授权的唯一方法。