Как узнать, когда было отправлено перенаправление аутентификации OID C? - PullRequest
0 голосов
/ 20 января 2020

Я использую Flask -OID C и, например, у меня есть маршрут:

@app.route('/')
@oidc.require_login
def home():
  print('hi there')

Внутри моего кода приложения / маршрутов я знаю только то, что пользователь аутентифицирован. Как я могу узнать, когда пользователь прошел аутентификацию?

Мы используем размещенную в Okta аутентификацию (я не думаю, что в этом потоке что-то указано c для Okta), поэтому пользователь перенаправляется на сайт Okta и затем перенаправляется на наш сайт с токеном при успешном завершении. аутентифицированы на их стороне. Насколько я понимаю, поток выглядит следующим образом:

  1. пользователь приходит на маршрут
  2. Flask -OID C код проверяет OID C cook ie, если он действителен , перейдите к 6
  3. OID C код перенаправляет их в Okta (или другой поставщик OpenID)
  4. пользователь успешно аутентифицируется удаленным провайдером
  5. пользователь перенаправляется на OID C конечная точка на нашем сервере и проверена
  6. пользовательский доступ вызывает код маршрута

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

1 Ответ

1 голос
/ 23 января 2020

Из Flask документации ,

accept_token (require_token = False, scopes_required = None, render_errors = True)

Используйте это для украшения функций представления, которые должны принимать токены OAuth2, это, скорее всего, будет применяться к функциям API.

Токены принимаются как часть URL-адреса запроса (значение access_token) или значение формы POST (access_token).

Как только пользователь успешно завершит поток OID C, ваше приложение получит токены OID C (OAuth 2.0 как указано в документе) от OKta. Для выполнения требования шага 5 необходимо задействовать этот метод обработки ответов.

ps - в качестве ссылки обнаружен фрагмент кода .

...