alias testcases="sed -n 's/func.*\(Test.*\)(.*/\1/p' | xargs | sed 's/ /|/g'"
go test -v -run $(cat coordinator_test.go | testcases)
Итак, мой вопрос: как открыть URL авторизации, не открывая браузер? Я хочу, чтобы мой код автоматически авторизовался, не делая этого вручную.
blockquote>Если вы используете 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')