我有一个现有的 Rails 应用程序,它使用设计作为用户身份验证。我添加了一个讨论论坛,一切都很顺利,它位于一个子域中。我已经阅读了https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045上的帖子,但是一旦用户登录,我仍然不知道如何处理设计方面的事情在现有的铁路站点上。目前这是我理解的过程:
Step1:用户在子域上点击 Discourse 论坛。用户需要登录,所以点击登录按钮。
Step2:用户被发送到现有Rails站点的登录页面。
Step3:用户登录rails网站。
Step4:用户应该被重定向到登录的话语论坛子域。
我的问题是 - 我需要做什么才能使用户在第 3 步登录时被重定向回子域?有没有人成功地实现了这一点?我在那个演练页面上看到了这个代码片段:
class DiscourseSsoController < ApplicationController
def sso
secret = "MY_SECRET_STRING"
sso = SingleSignOn.parse(request.query_string, secret)
sso.email = "user@email.com"
sso.name = "Bill Hicks"
sso.username = "bill@hicks.com"
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 中,如果是,它会在完成设计登录过程后重定向,如果不是,它只会像往常一样运行。我会将此代码放在设计文件中的某个位置吗?