我正在使用谷歌管理目录 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
这将是匹配它们的那个。引用
关于reactjs - 权限不足 : Request had insufficient authentication scopes in google directory API when logging through admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60176359/