Недостаточное разрешение: у запроса недостаточно областей аутентификации в API каталогов Google при входе в систему через администратора - PullRequest
0 голосов
/ 11 февраля 2020

Я использую API каталогов администратора Google, чтобы получить все учетные записи, публикующие c информацию, используя следующий API https://www.googleapis.com/admin/directory/v1/users

вот ссылка для этого API ссылка когда я вошел в систему, используя g suite учетную запись домена, скажем 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 }));

токен идет от этого модуля npm реагирует на вход в систему Google кнопка входа в Google

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

с помощью @ ale13 я узнал, что мне нужно добавить scopo в react-module реагировать на вход в Google

, поэтому я добавил следующую область действия

https://www.googleapis.com/auth/admin.directory.user

и я до сих пор не знаю, как это работает для пользователя без прав администратора без добавления области действия

0 голосов
/ 17 февраля 2020

Кажется, что проблема, с которой вы сталкиваетесь, связана с тем, как вы используете токен доступа, точнее с тем, как вы используете области для учетной записи admin относительно access token, которую вы have.

Если области, которые вы хотите использовать с двумя учетными записями, не совпадают полностью, вам потребуется получить другой токен доступа при использовании учетной записи администратора.

Таким образом, чтобы решить вашу проблему, вам необходимо получить новый токен доступа для областей, которые вы будете использовать для учетной записи администратора . Вы можете объявить их так:

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

То же самое относится к учетной записи без прав администратора ; если области не совпадают полностью, объявите их, как указано выше, и получите еще один access token, который будет соответствовать им.

Ссылка

...