2011-03-31 30 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,如果它不适合你的新哈希算法,使它失效并重定向?