在设计中,如何将用户重定向回他们来自的非应用网址

时间:2014-07-12 01:07:24

标签: ruby-on-rails redirect ruby-on-rails-4 devise single-sign-on

情况:我正在构建一个Rails应用程序,它将作为几个内部应用程序的中央身份验证系统。该应用程序将SSO进入这些其他应用程序。

因此,用户的路径为https://site-a.com,它将重定向到https://site-b.com(这是运行Rails w / Devise和Pundit的路径)。用户将在那里进行身份验证。

我需要将该用户带回https://site-a.com

我在Devise中看到的一切都是它可以重定向,但仅限于应用程序中的路由。

请保持温和。

1 个答案:

答案 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