在使用Rails和Devise注册后,将用户登录到其子域

 09会计系欣荣19__81_186 发布于 2023-02-11 16:18

我在我的Rails 3应用程序中使用Devise进行身份验证.该应用程序使用PostgreSQL模式和Apartment gem来促进多租户.

创建帐户,登录和退出特定子域名的工作正常.用户只能在子域上登录其特定帐户,这很棒.

这是我遇到问题的地方......

全新用户点击注册网址:

http://foo.com/signup

默认情况下,当他们单击"提交"时,会创建新帐户,但会将用户发送到:

http://foo.com/dashboard

相反,我希望他们去:

http://myaccount.foo.com/dashboard

为了实现这一点,我覆盖了after_sign_up_path_for我的registrations_controller.rb文件中的方法:

def after_sign_up_path_for(resource)
  root_url(:subdomain => resource.account.subdomain)
end

这按预期工作 - 它加载正确的URL - 但用户的会话是为根域(foo.com)而不是子域创建的,因此要求用户登录.

我发现的一个建议是config/initializers/session_store.rb改为:

config.session_store :cookie_store, :key => '_domain_session', :domain => :all

但这允许任何人登录任何子域的帐户,这显然不是很酷.

问题:如何确保注册时创建的会话对注册过程中创建的子域有效

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有