我正在使用google admin目录API来使用以下API获取所有帐户的公共信息https://www.googleapis.com/admin/directory/v1/users
这里是此api link的链接当我使用g suite域帐户登录时,让[email protected]与非管理用户一起使用,此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 }));
令牌来自此模块npm react google login google登录按钮
[您似乎遇到的问题与您使用访问令牌的方式有关,更确切地说,与您所拥有的access token
有关的是您对admin account的作用域的使用方式。] >
如果要与两个帐户一起使用的范围不完全匹配,则您将需要获得另一个访问令牌
,当您使用管理员帐户时。因此,为了解决您的问题,您将必须为将用于admin帐户
的范围获得一个新的访问令牌。您可以这样声明它们:const SCOPES = ['https://www.googleapis.com/auth/admin.directory.user.readonly' 'OTHER_SCOPE_1' 'OTHER_SCOPE_2'...];
对[[非管理员帐户]也一样];如果范围不完全匹配,则像上面那样声明它们,并获得另一个
access token
,它将是与它们匹配的一个。
参考