Как клиентское приложение повторно аутентифицирует пользователя на сервере аутентификации портье? - PullRequest
0 голосов
/ 04 сентября 2018

Предположим, у нас есть:

  • auth-сервер (приложение rails с помощью doorkeeper)
  • клиентское приложение (приложение реакции, нет сервера)
  • ресурс-сервер (API построен с рельсами)

Вот как работает поток авторизации:

  1. пользователь нажимает кнопку входа в клиентском приложении

  2. клиентское приложение отправляет пользователя привратнику со следующими параметрами: clinet_id redirect_uri response_type = маркер

  3. после того, как пользователь авторизует приложение, сервер авторизации перенаправляет обратно в клиентское приложение (для перенаправления URL), access_token является частью этого URL, клиентское приложение сохраняет access_token.

  4. сделать запрос к ресурсу-серверу с access_token для получения ресурсов.

  5. ресурс-сервер делает запрос к auth-серверу с access_token, получает current_user с этим access_token.

  6. ресурс-сервер отвечает данными на основе current_user.

Теперь access_token, который клиентское приложение получает от auth-сервера, живет только 2 часа.

Таким образом, через 2 часа, когда клиентское приложение попытается сделать запрос, сервер ресурсов попытается получить current_user, но получит 401, и ответит клиентскому приложению 401.

На данный момент все клиентское приложение имеет client_id и просроченный access_token.

Как клиентское приложение получает новый access_token?

Я не мог найти много в википортере об этом. Кажется, все примеры и настройки там требуют секрета.

...