Единый вход с Rails Server и клиентом React - PullRequest
0 голосов
/ 07 июня 2019

У меня есть Rails API и клиент, написанный на React, который встроен в веб-сайт A. Я хочу использовать единый вход, чтобы пользователи, входящие на веб-сайт A и входящие в мое приложение React, автоматически входили в API , Я использую Devise для управления пользователями и Doorkeeper для обработки OAuth2.

Вот такой сценарий разыскивается:

  • Пользователь входит в систему на веб-сайте A, который является поставщиком

  • Пользователь переходит в приложение React (встроено в веб-сайт A), некоторая информация пользователя передается веб-сайтом A в приложение React

  • Если пользователь неизвестен Rails API, убедитесь, что провайдер является веб-сайтом A, и сохраните пользователя через Devise

  • Получить токен доступа для этого пользователя и информацию о пользователе из API и отправить обратно в React App

Я не могу добавить маршруты на сайт A, поэтому невозможно установить обычный поток OAuth2.

Моя идея состояла в том, чтобы передать подпись, идентифицирующую пользователя с веб-сайта A, в приложение React и отправить ее в API для аутентификации пользователя. Я попытался использовать камень doorkeeper-grants_assertion , но не могу обернуться вокруг этой проблемы.

Какой поток грантов я должен использовать для пользователя в этом случае? Как интегрировать эту стратегию в omniauth?

Любая помощь будет высоко ценится.

...