情况:我正在构建一个Rails应用程序,它将作为几个内部应用程序的中央身份验证系统。该应用程序将SSO进入这些其他应用程序。
因此,用户的路径为https://site-a.com,它将重定向到https://site-b.com(这是运行Rails w / Devise和Pundit的路径)。用户将在那里进行身份验证。
我需要将该用户带回https://site-a.com。
我在Devise中看到的一切都是它可以重定向,但仅限于应用程序中的路由。
请保持温和。
答案 0 :(得分:1)
设计用户可以在用户登录后将其重定向到任意位置。
直接的方法是覆盖控制器中的after_sign_in_path_for
方法:
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
"http://site-a.com/"
end
end
有关after_sign_in_path_for
的详情,请参阅How To: redirect to a specific page on successful sign in。
如果您还不清楚如何使用Devise构建SSO系统,可能需要查看一下这篇文章:Multiple Applications with Devise, Omniauth and Single Sign On。