Asa*_*sad 9 google-admin-sdk reactjs google-directory-api
我正在使用 google 管理目录 API 使用以下 API https://www.googleapis.com/admin/directory/v1/users获取所有帐户公共信息
当我使用g suite域帐户 登录时,这里是此 api链接的链接,假设 abc@somedomain.com 使用非管理用户,此 api 工作正常并获取数组中所有帐户的数据,但是当我通过登录调用此 API 时管理员它给了我以下错误/
权限不足:请求的身份验证范围不足
为什么会发生这种情况我对两个用户使用相同的身份验证和 API 密钥
我的代码在这里
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 }));
Run Code Online (Sandbox Code Playgroud)
令牌来自此模块npm React google 登录google 登录按钮
您遇到的问题似乎与您使用访问令牌的方式有关,更确切地说,与您使用与您拥有的管理员帐户相关的范围的方式有关access token。
如果两个帐户要使用的范围不完全匹配,则在使用管理员帐户时需要获取另一个访问令牌。
因此,为了解决您的问题,您必须为您将用于管理员帐户的范围获取新的访问令牌。你可以这样声明它们:
const SCOPES = ['https://www.googleapis.com/auth/admin.directory.user.readonly' 'OTHER_SCOPE_1' 'OTHER_SCOPE_2'...];
Run Code Online (Sandbox Code Playgroud)
非管理员帐户也是如此;如果范围不完全匹配,请像上面一样声明它们并获取另一个access token与它们匹配的范围。
参考
| 归档时间: |
|
| 查看次数: |
24332 次 |
| 最近记录: |