2011-01-28 59 views
9

我使用的設計進行驗證,並希望堅持以下工作:鋼軌/設計 - 設置有一項餅乾在不同的子域

  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的工作。幫幫我!! ;)

回答

21

我可能有點晚了這一點,但對於那些希望在未來,這是一個相當簡單的解決方案。添加到您的環境中的配置文件:

Rails3App::Application.config.session_store :cookie_store, :key => '_rails3_app_session', :domain => :all 
# change "Rails3App" to the name of your rails app. 

的是最重要的部分是:域名=>:所有的,因爲這告訴Rails允許子域爲好。其他人建議使用:domain =>「.mydomain.com」,但是:domain =>:所有人都可以完成這項工作,並且不需要您輸入域名。

注:如果當你重新啓動服務器不工作,你可能在你的初始化一個session_store.rb文件/文件夾被覆蓋它。只需更改該文件中的行,或刪除該文件並將其移至您的配置。

另外,我有專門放置行我production.rb文件,因爲它改變在session_store.rb文件打破了我的會話發展(使用IP地址)。

7

附錄:如果它仍然無法正常工作,雖然你很肯定您刪除舊的餅乾,重命名cookie的關鍵 - 只是爲了確保。 (故障排除了幾個小時之後,這是我真正需要做的,使其工作。)