Я пытаюсь использовать сервис, который стоит за 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) выполните перенаправление в случае, если оно выполнено?
Помощь будет принята, поскольку документация мне не очень понятна, и Примеры, которые пытаются заархивировать ту же цель, что и я, трудно найти как-то. Я был в этом некоторое время, но я отказываюсь бросать это.