У меня есть существующее приложение rails, которое использует разработку в качестве аутентификации пользователя. Я добавил дискуссионный форум, и все прошло гладко, и он находится на поддомене. Я прочитал сообщение на https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045, но до сих пор не знаю, что делать с разработкой, когда пользователь входит в систему на существующем сайте rails. В настоящее время это процесс, как я его понимаю:
Шаг 1: Пользователь переходит на форум Discourse на поддомене. Пользователь должен войти в систему, поэтому нажимает кнопку входа.
Шаг 2: Пользователь отправляется на страницу входа на существующий сайт rails.
Шаг 3: Пользователь входит в систему на сайте rails.
Шаг 4: Пользователь должен быть перенаправлен на субдомен форума обсуждения, вошедший в систему.
Мой вопрос: что мне нужно сделать, чтобы когда пользователь входит в систему на шаге 3, он перенаправлялся обратно на субдомен? Кто-нибудь успешно реализовал это? Я видел этот фрагмент кода на странице пошагового руководства:
class DiscourseSsoController < ApplicationController
def sso
secret = "MY_SECRET_STRING"
sso = SingleSignOn.parse(request.query_string, secret)
sso.email = "[email protected]"
sso.name = "Bill Hicks"
sso.username = "[email protected]"
sso.external_id = "123" # unique to your application
sso.sso_secret = secret
redirect_to sso.to_url("http://l.discourse/session/sso_login")
end
end
Это то, что мне нужно добавить в мое существующее приложение rails? Я предполагаю, что синтаксический анализ проверяет, находится ли эта информация в URL-адресе, и если да, то он перенаправляется после завершения процесса входа в систему, а если нет, он просто работает как обычно. Могу ли я разместить этот код где-нибудь в файлах разработки?