python войдите на сайт за Google oauth - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь использовать сервис, который стоит за Google OAuth. Для этого создали учетную запись службы и загрузили файл учетных данных JSON.

Тем не менее, что бы я ни пытался, мне все еще предлагают URL Google OAth Redirect.

Я использую python3 и модуль google-auth (https://googleapis.dev/python/google-auth/latest/user-guide.html)

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

#pip3 install google-auth
from google.auth.transport import requests
from google.oauth2 import service_account
from google.oauth2 import id_token

credentials = service_account.IDTokenCredentials.from_service_account_file(
        'my_cred_file.json', target_audience='https://domain_i_want_to_access.com')


# Create a requests Session object with the credentials.
session = requests.AuthorizedSession(credentials)


#Make an authenticated request
response = session.get('https://domain_i_want_to_access.com/something')

#------ anything below here is basically debug stuff ----------------

# to verify an ID Token
request = requests.Request()
token = credentials.token
print('\n\ntoken:')
print(token)
print('\nverified token:')
print(id_token.verify_token(token,request))
print('\n\nHTTP response')
print(response.url)```

#------ script output ----------------

Result:
```token:
sdfgtOiJSUz.....very.long.token......oox_LPE2NGBdsfD

verified token:
{'aud': 'https://domain_i_want_to_access.com', 'azp': 'my_account@something.iam.gserviceaccount.com', 'email': 'my_account@something.iam.gserviceaccount.com', 'email_verified': True, 'exp': 1581016495, 'iat': 1581012895, 'iss': 'https://accounts.google.com', 'sub': '117414453805033713249645'}

HTTP response
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=etc..etc..etc

Итак, насколько я понимаю: - Мне действительно удалось получить токен - Этот токен действителен (подтверждено печатью (credentials.valid) - Но я делаю что-то не так с запросом, так как он не отображается: 1) войдите в систему для меня или 2) выполните перенаправление в случае, если оно выполнено?

Помощь будет принята, поскольку документация мне не очень понятна, и Примеры, которые пытаются заархивировать ту же цель, что и я, трудно найти как-то. Я был в этом некоторое время, но я отказываюсь бросать это.

...