Невозможно получить учетные данные пользователя в маршруте Flask с помощью oauth2client.contrib.flask_util - PullRequest
0 голосов
/ 24 мая 2019

В моем приложении у меня есть кнопка входа, которая вызывает /oauth2authorize, и это работает хорошо. В методе authorize_callback, который я зарегистрировал на стороне сервера, я получаю учетные данные в параметрах и могу без проблем вызвать конечную точку API Google.

oauth2 = UserOAuth2()

def create_app(debug=False, testing=False, config_overrides=None):
    app = Flask(__name__, template_folder='templates')
    app.config.update(
        SECRET_KEY=b"XXX",
        GOOGLE_OAUTH2_CLIENT_ID='XXXX',
        GOOGLE_OAUTH2_CLIENT_SECRET='XXXX'
    )

    oauth2.init_app(
        app,
        scopes=[MY_SCOPES],
        authorize_callback=request_user_info)

def request_user_info(credentials):
   http = httplib2.Http()
   credentials.authorize(http)
   resp, content = http.request(u'https://www.googleapis.com/userinfo/v2/me')

Проблема в том, что когда я хочу получить эти учетные данные позже по другому маршруту, чтобы сделать другие вызовы API Google.

Я пробовал без декоратора @oauth2.required, а затем oauth2.credentials - это None, oauth2.email и oauth2.user_id.

Я попытался с помощью @oauth2.required decorator, и когда я пытаюсь вызвать мой маршрут, процесс аутентификации начинается снова (и не удается, я не уверен, почему, возможно, неверная конфигурация URL).

По сути, я хотел бы получить объект учетных данных (точно так же, как тот, который был передан в моем authorize_callback), чтобы я мог делать свои запросы API.

Видишь, что я делаю не так?

К вашему сведению: это колба-утилита lib, которую я использую (часть oauth2client)

Спасибо

...