使用 Authlogic 创建 session 时,是否可以将 cookie 域设置为当前域以外的其他域?
当从我们的注册域创建新帐户时,我想将用户重定向到他们的子域帐户并让用户登录。
电流 Controller :
def create
@account = Account.new(params[:account])
if @account.save
@user_session = @account.user_sessions.create(@account.users.first)
# I'd like the cookie domain to be [@account.subdomain, APP_CONFIG[:domain]].join(".")
redirect_to admin_root_url(:host => [@account.subdomain, APP_CONFIG[:domain]].join("."))
else
render 'new'
end
end
最佳答案
如果你这样做:config.action_controller.session[:domain] = '.YOURDOMAIN.COM'
在您的 production.rb 文件中,这将允许您让每个人都登录到您子域的所有子域。如果您然后添加一个过滤器(或其他任何东西,但我使用了一个过滤器,所以我知道它可以工作)在您显示 Controller 内容之前检查某人实际上是否使用了正确的域,它运行得很好。
例如,您可以将 session 的适当子域存储为 session 变量,如果人们在您的主域上或查看其他人的子域上的页面,则可以为他们提供指向其特定内容的链接选项。
这似乎是做这种事情的一般模式——如果你设置了一个特定于子域的 cookie,否则你将无法知道他们何时登录到主站点。我也有一个' users_domain?
' 当我这样做时,最终会在 View 中偶尔被调用的助手。
如果你不想拥有那些常见的网页设计模式,wesgarrion 的单次使用 -> 在子域上创建 session 也是一种方法。我只是想我会提到这是一个设计/交互/代码问题。
关于ruby-on-rails - 创建 session 时在Authlogic中指定Cookie域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039053/