RAILS/DEVISE - 设置一个设计cookie,以便在不同的子域中保持不变

use*_*065 9 ruby-on-rails devise

我使用设计进行身份验证,并希望以下工作:

  1. 用户登录[ http://mydomain.com].
  2. 用户通过[ https://secure.mydomain.com]付款
  3. 用户返回[ http://mydomain.com/action]继续使用系统

我正在关注本教程:http://clearcove.ca/blog/2010/11/how-to-secure-a-rails-app-on-heroku-with-ssl-firesheep/

但我正处于需要让Devise做authlogic在这里做的部分.救命!!;)

Kel*_*lly 21

我可能会迟到一点,但对于那些展望未来的人来说,这是一个相当简单的解决方案.将其添加到您环境的配置文件中:

Rails3App::Application.config.session_store :cookie_store, :key => '_rails3_app_session', :domain => :all
# change "Rails3App" to the name of your rails app.
Run Code Online (Sandbox Code Playgroud)

其中重要的部分是:domain =>:all,因为它告诉Rails也允许子域.其他人建议使用:domain =>".mydomain.com",但是:domain =>:all完成工作,不要求你输入你的域名.

注意:如果在重新启动服务器时它不起作用,则初始化程序/文件夹中的session_store.rb文件可能会覆盖它.只需更改该文件中的行,或删除该文件并将其移动到您的配置.

此外,我必须专门将该行放在我的production.rb文件中,因为在session_store.rb文件中更改它会破坏我的会话以进行开发(使用IP地址).


Rin*_*Rin 7

附录:如果它仍然不起作用,虽然你很确定你删除了旧的cookie,重命名cookie的密钥 - 只是为了确保.(经过数小时的故障排除后,这就是我真正需要做的就是让它工作.)