2011-03-31 29 views
1

我被要求投入使5月1日之前創建的某個cookie無效的能力(這將在5月1日完成),以便cookie自動更新,因爲哈希在改變。現在我們的cookies設置爲持續30天。由於餅乾位於客戶機我想不出這樣做了許多原因中的任何清潔方式:使所有用戶的cookies無效

  1. 據我所知,我不認爲有檢索創建方式或JavaScript中的cookie的到期數據。
  2. 由於Cookie設置爲30天,無論需要發生就需要存在30天

至於寫這一個想法已經浮現在腦海中。我唯一能想到的,它是這樣一個黑客,基本上是在每當這個開關需要發生,我在一塊類似的代碼添加:

var newHash = readCookie('new_hash'); 
if(newHash != 1) 
{ 
    eraseCookie('hash'); 
    create_cookie('new_hash', 1, 60);//set this flag for 60 days 
} 

所以這應該刪除的哈希的cookie,如果用戶還沒有更新到新的散列,它應該每60天才會這樣做。在30天左右之後,我可以刪除此代碼,因爲所有用戶都會將其Cookie更新爲新的散列。

有沒有更簡單的方法來做到這一點?

回答

2

難道你不能只用一個不同的名字製作一個cookie,而是開始使用那個名字嗎?如果你的代碼不再讀取舊的,它基本上不存在。

+0

這需要在我的後端PHP代碼和前端JavaScript代碼中更改相當多的代碼。此外,我們有多個網站使用相同的Cookie名稱,並使用相同的後端代碼庫,因此也需要更改其他網站。 – ryanzec 2011-03-31 14:09:22

+0

這很煩人。也許現在把它作爲一個變量重寫的努力將會在未來避免麻煩? (如果沒有更好的解決方案!) – 2011-03-31 14:12:06

0

您可以將過期數據添加爲新cookie值的一部分,以及過期參數。沒有它的餅乾將是舊的cookie。

0

你可以試着讀取傳入的cookie,如果它不適合你的新哈希算法,使它失效並重定向?