有没有办法允许用户通过各自的URL(主机)登录?

时间:2018-10-29 04:22:33

标签: ruby-on-rails ruby ruby-on-rails-4 devise ruby-on-rails-5

我这里有个情况。 Rails应用程序使用两个不同的URL:http://test.com.auhttp://test.co.uk。每个用户都通过各自的URL登录。但是,登录的控制器和形式是相同的。

通过相应的网址强制用户登录的最佳方法是什么?假设用户A来自澳大利亚,那么当他通过http://test.co.uk登录时,然后通过http://test.com.au重定向他。

试图在登录后更改用户的重定向路径

request.protocol + respective_host + member_dashboard

但是,当澳大利亚用户通过英国网站登录时,会提示他们再次通过英国网站登录。有没有一种方法可以允许澳大利亚用户通过英国网站登录,然后将其登陆到 http://test.com.au/dashboard ,而不会提示他通过澳大利亚网站再次登录?

此外,devise用于身份验证。

1 个答案:

答案 0 :(得分:0)

如果您为两个域都设置了会话,我认为您的解决方案request.protocol + respective_host + member_dashboard应该可以解决此问题。

请按照以下步骤操作,即为两个域设置会话。

您必须将config/initializers/session_store.rb中的会话存储配置更改为关注

Rails.application.config.session_store :cookie_store, key: '_my_app_session', domain: :all, tld_length: 2

您可以在https://github.com/plataformatec/devise/wiki/How-To:-Use-subdomains处查看更多选项。

希望有帮助!