Откройте URL авторизации, не открывая браузер Python

alias testcases="sed -n 's/func.*\(Test.*\)(.*/\1/p' | xargs | sed 's/ /|/g'"

go test -v -run $(cat coordinator_test.go | testcases)
1
задан Analytics POPSWW 17 January 2019 в 06:24
поделиться

1 ответ

Итак, мой вопрос: как открыть URL авторизации, не открывая браузер? Я хочу, чтобы мой код автоматически авторизовался, не делая этого вручную.

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

Если вы не используете G Suite, вы не сможете обойти экран аутентификации пользователя при первом входе пользователя на ваш сайт. Как только пользователь аутентифицируется с доступом offline, вы можете сохранить токен обновления для использования в будущем.

Аутентификация и авторизация происходит между клиентом (пользователем) и аккаунтами Google. Ваше программное обеспечение не участвует в части учетных данных (имя пользователя, пароль и т. Д.). Пользователь должен предоставить разрешение на использование учетных записей Google, чтобы ваши службы могли получить доступ к идентификационной информации Google.

[EDIT 1/22/2019 - после вопроса о том, как сохранить токен обновления]

Следующий код с авторизацией и сохранением токена обновления:

# pip install google-auth-oauthlib
from google_auth_oauthlib.flow import InstalledAppFlow

# https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html

flow = InstalledAppFlow.from_client_secrets_file(
    'client_secrets.json',
    scopes=['https://www.googleapis.com/auth/cloud-platform'])

cred = flow.run_local_server(
    host='localhost',
    port=8088,
    authorization_prompt_message='Please visit this URL: {url}',
    success_message='The auth flow is complete; you may close this window.',
    open_browser=True)

with open('refresh.token', 'w+') as f:
    f.write(cred._refresh_token)

print('Refresh Token:', cred._refresh_token)
print('Saved Refresh Token to file: refresh.token')
0
ответ дан John Hanley 17 January 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: