设计+子域 - 重定向用户sign_in

Fir*_*ari 7 subdomain ruby-on-rails devise

我在具有多个子域的rails应用程序中使用devise gem.每个子域由相应的控制器处理,如下所示:

class Subdomain1Controller < ApplicationController
  before_filter :authenticate_user!
  def index
  end
end
Run Code Online (Sandbox Code Playgroud)

通过上述控制器实现,Devise始终保持子域,同时将用户重定向到登录页面.在上述情况下,Devise将用户重定向到http://subdomain1.acmesite/users/sign_in而不是常用的sign_in Url.

这导致每个子域具有多个sign_in URL.

http://subdomain1.acmesite/users/sign_in
http://subdomain2.acmesite/users/sign_in
http://subdomain3.acmesite/users/sign_in
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能覆盖设计方法从网址中排除子域部分,但保留上一页的网址信息.更珍贵的是,我希望Devise将用户重定向到特定的Url(例如:http:// acmesite/users/sign_in),无论子域名如何,并且在成功进行身份验证后,Devise应该将用户返回给调用者子域+页面.

Fir*_*ari -3

我从我的项目中删除了 Devise gem,现在改用 Sorcery。

Sorcery为我提供了对控制器和视图的完全控制,完全符合我的项目要求。在此过渡后进行了六个月的生产,我对魔法宝石感到满意。