Как узнать, какие разрешения имеет объект учетных данных oauth2client? - PullRequest
0 голосов
/ 09 января 2019

У меня есть программа на python (2.7), которая использует oath2client для доступа к googledocs. Я могу создавать файлы и редактировать файлы, но не могу удалить их. Я предполагаю, что это из-за проблемы с разрешениями.

Есть ли способ узнать, к каким разрешениям мой объект oath2client имеет доступ? Если ничего другого, было бы неплохо иметь возможность выдать сообщение об ошибке, говорящее «у вас нет прав на удаление» или что-то в этом роде ...

Кроме того, поскольку все, что у меня есть, это client_id и токен, я даже не уверен, какую учетную запись я пытаюсь использовать (мы используем разные учетные записи для разных целей)

1 Ответ

0 голосов
/ 10 января 2019

Для токенов Google OAuth 2.0 вы можете позвонить в конечную точку Google, которая выдаст подробную информацию о токене (JWT).

Вот пример использования curl. Заменить ACCESS_TOKEN на реальную.

curl "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN

Вывод будет выглядеть примерно так. Ваши разрешения в scope.

{
  "issued_to": "123456789012345678901",
  "audience": "123456789012345678901,
  "scope": "https://www.googleapis.com/auth/cloud-platform",
  "expires_in": 2826,
  "access_type": "offline"
}

Затем вы можете очень легко отобразить этот пример curl в код Python, используя Python requests или другую библиотеку.

Обратите внимание на клавишу issued_to. Это Unique ID, который присваивается каждой учетной записи Google. Это сопоставляет адрес электронной почты с уникальным идентификатором. Уникальный идентификатор вы найдете в консоли Google Cloud Console, щелкнув адрес электронной почты учетной записи службы в IAM. (Вы не упоминаете GCP, но на случай, если вы его используете).

...