reactjs - 权限不足 : Request had insufficient authentication scopes in google directory API when logging through admin

标签 reactjs google-admin-sdk google-directory-api

我正在使用谷歌管理目录 API 使用以下 API 获取所有帐户的公共(public)信息
https://www.googleapis.com/admin/directory/v1/users

这是此 api link 的链接
当我使用 登录时g套件域帐户让我们说 abc@somedomain.com 与非 管理用户 此 api 工作正常并获取数组中所有帐户的数据
但是当我通过以管理员身份登录来调用此 API 时,它会给我以下错误/

Insufficient Permission: Request had insufficient authentication scopes



为什么会发生我为两个用户使用相同的身份验证和 API key
我的代码在这里
const token =localStorage.getItem('token')
 fetch(`https://www.googleapis.com/admin/directory/v1/users? 
 domain=${domain.url}&viewType=domain_public&key=${apiKey.key}`  
  ,{ headers: {
'authorization': 'Bearer '+token
  },})

  .then(response => response.json())
  .then(data => this.setState({ users:data.users }));

token 来自此模块 npm react google login谷歌登录按钮

最佳答案

您遇到的问题似乎与您使用访问 token 的方式有关,更准确地说与您使用 范围的方式有关。管理员帐号关于access token你有。

如果您要与两个帐户一起使用的范围不完全匹配,您将需要获取另一个访问 token 当您使用管理员帐户时。

因此,为了解决您的问题,您必须为您将用于 的范围获取新的访问 token 。管理员帐号 .您可以像这样声明它们:

const SCOPES = ['https://www.googleapis.com/auth/admin.directory.user.readonly' 'OTHER_SCOPE_1' 'OTHER_SCOPE_2'...];

也是如此非管理员帐号 ;如果范围不完全匹配,请像上面一样声明它们并获取另一个 access token这将是匹配它们的那个。

引用
  • Authorizing Requests with OAuth 2.0
  • 关于reactjs - 权限不足 : Request had insufficient authentication scopes in google directory API when logging through admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60176359/

    相关文章:

    javascript - 带过滤器的 React JS 表

    reactjs - React 开发工具将我的组件显示为未知

    java - 使用 Google API Client Library for Java 更改批量 HTTP 请求的读取超时

    android - 在两侧以固定距离从 "google map navigation path"画一条线,这样它将在导航路径周围创建类似 View 的框

    go - 使用 go 从 g-suite 查询自定义属性

    javascript - 为什么我的组件在传递 props( react )时没有渲染?

    javascript - 无法读取reactjs中未定义的属性 'sort'

    google-admin-sdk - 周末 Google Directory API 发生了什么变化/中断?

    java - 如何在不需要 OAuth 授权的情况下代表我们组织的用户配置密码

    google-api - Google API 给出未经授权的 token 错误