2011-09-21 19 views
0

我爲不同的用戶提供了各種圖像庫。整個頁面大部分可能會被緩存。不過,我也想了以下功能:如何使用javascript訪問cookie中的用戶ID:Rails,Devise,Page Caching

  1. 如果用戶登錄並訪問了自己的畫廊,那麼用戶 可以看到一個「X」刪除鏈接覆蓋每個圖像。

  2. 如果用戶已登錄並在別人的畫廊上,那麼他們可以在每張圖片上看到疊加「拇指向上」,「拇指向下」投票。

  3. 如果用戶沒有登錄,他們可以看到 投票覆蓋圖, 但是點擊它們會彈出一個登錄對話框。

的方法,我想出了是這樣的:

  • 在服務器端ERB模板我總是會生成投票 鏈接和刪除不管登錄狀態的鏈接,但我一定要有 它們默認使用css隱藏。
  • 然後,我將根據用戶的登錄狀態使用js 來揭示它們。

問題是......在緩存頁面上確定用戶登錄狀態的最佳方式是什麼?我可以在緩存頁面上使用Cookie嗎?

if ($.cookie("user_id") == 23) { //if user is owner of this gallery... 
    //reveal delete links, hide voting links 
    } 

我討厭建立一些特殊的設置cookie的......應該有:

想如果我有緩存的頁面上的一段JavaScript代碼,對於類似這樣的cookie值檢查它的工作已經存在某種DEVISE cookie的權利?我如何訪問它?

回答

0

使用$.cookie("user_id")來設置cookie,使用$.cookie("user_id", "23")來設置cookie。但是,您應該小心未經驗證的濫用行爲:每個無需憑證的請求都應該被拒絕,否則登錄的目的將被打敗。

如果您要檢查您的網站上可用的餅乾,用這個書籤:

javascript:alert(document.cookie) 
+0

控制器將拒絕那些沒有經過認證的任何請求,這只是用於顯示的鏈接。謝謝。 – Homan

相關問題