Devise验证后重定向

时间:2019-11-09 22:21:29

标签: ruby-on-rails ruby devise

我有一个主应用程序和一个共享密钥的帮助。如果我未在主应用程序中通过身份验证,则帮助站点将重定向到主应用程序。我的想法是,Devise会记住您尝试访问该站点的路径,然后在身份验证后将您发送到该路径。

我在主应用程序中尝试过此操作

get '/help', to: redirect('https://help.mydomain.com'), as: :help

问题是我遇到ERR_TOO_MANY_REDIRECTS错误。我希望我的主应用程序Devise首先进行身份验证,然后重定向。

有什么想法吗?

更新

靠近:

    # routes.rb

  authenticated :user do
    get '/help', to: redirect('https://help.insertyour.domain'), as: :help
  end

  unauthenticated do
    get '/help', to: 'home#dashboard'
  end

这解决了重定向问题,但又造成了另一个问题。帮助站点会将您发送到主站点(https://app.insertyour.domain/help)注册页面。您进行身份验证,然后设计将您发送回帮助站点,它允许访问。问题是,如果您返回主应用程序,则必须再次进行身份验证。这不是主意,但现在可以使用。不确定为什么尝试重新访问主站点需要再次进行身份验证。

1 个答案:

答案 0 :(得分:0)

Devise将令牌设置为cookie,并且显然不与help.mydomain.com共享(这是安全的默认设置)。如果帮助应用位于子域下,则可以configure session store, to allow subdomains

Rails.application.config.session_store :cookie_store, key: '_my_app_session', domain: '.mydomain.com'