【问题标题】:Session isn't passing over domain会话没有通过域
【发布时间】:2010-10-07 02:19:50
【问题描述】:

在我的 rails 应用程序中,当我在 www.site.com 地址登录时,我登录得很好。虽然没有登出,但我去网站,http://site.com我已经登出,但如果我回去,仍然在www.site.com地址登录。

我找不到任何可以在我的环境变量中设置的内容,知道如何在我的域中的所有域中保持此会话吗?

【问题讨论】:

    标签: ruby-on-rails session


    【解决方案1】:

    正确设置会话cookie;也就是说,针对 .site.com 和 site.com 而不仅仅是针对 www.site.com。

    【讨论】:

    • 我不知道你正确设置会话cookie是什么意思。我不记得设置它。我只是使用 session[:user_id] 并继续前进。
    【解决方案2】:

    当您为“site.com”设置会话 cookie 时,它​​将不同于“www.site.com”。您需要将“cookie_domain”指定为“.site.com”,这将设置 cookie 或所有子域。在 PHP 中,您可以使用ini_setsession_set_cookie_params 来设置session.cookie_domain。在 Rails 中,您可以向 enviroment.rb 添加一个小脚本 - 类似于:

    ActionController::Base.session_options[:session_domain] = '.site.com'

    (在这种情况下,您还可以根据生产/测试/开发环境中的域名进行一些切换)或尝试一些other configuration options

    subject 上的信息比您想知道的要多。

    【讨论】:

      【解决方案3】:

      您应该将 www.site.com 重定向到 site.com(或相反)。如果你不这样做,谷歌可能会认为这是两个不同的网站。

      【讨论】:

      • +1 虽然这不能回答问题,但它肯定是你应该实施的。
      【解决方案4】:

      在 Rails 2.3 中,这已更改为:

      config.action_controller.session[:domain] = '.example.com'
      

      或者如果会话变量尚未创建

      config.action_controller.session = {:domain => '.example.com'}
      

      Losing session in rails 2.3.2 app using subdomain

      【讨论】:

        【解决方案5】:

        因为他们别名 www。到 。;你不能只是在前面加上www。到.?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-07
          • 1970-01-01
          • 2017-12-06
          • 2018-05-03
          • 2017-11-19
          • 1970-01-01
          • 2012-08-13
          相关资源
          最近更新 更多