2015-09-02 95 views
0

我正在開發一個支持各種子域的rails應用程序。有一個根域,如example.com,用戶通過它登錄,然後將用戶重定向到特定的子域url group.example.com,用戶可以在子域URL之間跳轉,具體取決於他們有權訪問哪個組。如何在會話Cookie中設置域屬性,以便它在子域(ex2.example.com和ex3.example.com)之間不可用?如何爲每個子域獨立設置Cookie,導致不同的Cookie?

編輯:

對不起,我的意思是會話cookie。我想爲每個子域名網址發送不同的Cookie。

+1

你能在這裏提供你的控制器代碼? –

+0

默認情況下,存儲在瀏覽器中的Cookie對於每個子域是不同的。因此,每個子域名都需要重新登錄。另請參閱[公寓](https://github.com/influitive/apartment)gem for rails – achabacha322

+0

ya,它們不同,但他默認登錄/所以默認情況下它將適用於所有域 –

回答

0

只需添加domain: my.subdoma.in到cookie

BTW:用戶的cookie應在所有子域名可用,你需要控制器檢查,如果他是有獲得小組第一。這是更好的方法。

1

查看Cookie類的文檔。您可以在創建/刪除cookie時指定域。

cookies[:name] = { 
    value: 'a yummy cookie', 
    domain: 'ex2.example.com' 
} 

當然,該值可以從當前請求中獲取。

cookies[:name] = { 
    value: 'a yummy cookie', 
    domain: request.host 
} 

這裏的選項

domain: nil # Does not sets cookie domain. (default) 
domain: :all # Allow the cookie for the top most level 
      # domain and subdomains. 
domain: %w(.example.com .example.org) # Allow the cookie 
             # for concrete domain names.