Редирект после аутентификации Devise - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть основное приложение и помощь с общим секретным ключом. Если я не авторизован в основном приложении, сайт справки перенаправляет в основное приложение. У меня была идея, что Devise запоминает путь, по которому вы пытались получить доступ к сайту, а затем отправляет вас туда после аутентификации.

Я пробовал это в своем основном приложении:

get '/help', to: redirect('https://help.mydomain.com'), as: :help

Проблемав том, что я получаю ERR_TOO_MANY_REDIRECTS ошибку. Я хочу, чтобы мое основное приложение Devise сначала проходило аутентификацию, а затем перенаправляло.

Есть идеи?

ОБНОВЛЕНИЕ

Начало работы:

    # routes.rb

  authenticated :user do
    get '/help', to: redirect('https://help.insertyour.domain'), as: :help
  end

  unauthenticated do
    get '/help', to: 'home#dashboard'
  end

Это решает перенаправление, но создает другую проблему. Сайт справки отправляет вас на главную страницу регистрации (https://app.insertyour.domain/help). Вы проходите аутентификацию, а затем devise отправляет вас обратно на сайт справки, и он разрешает доступ. Проблема в том, что если вы вернетесь к основному приложению, вам придется снова пройти аутентификацию. Это не идея, но работает на данный момент. Не уверен, почему новая попытка доступа к основному сайту требует повторной аутентификации.

1 Ответ

0 голосов
/ 10 ноября 2019

Devise устанавливает токен в cookie, и он, очевидно, не используется совместно с help.mydomain.com (это безопасное значение по умолчанию). Если приложение справки находится на поддомене, вы можете настроить хранилище сеансов, чтобы разрешить поддомены :

Rails.application.config.session_store :cookie_store, key: '_my_app_session', domain: '.mydomain.com'
...