即使在options param中设置了{expires:},Angularjs $ cookies仍会在刷新时到期?

时间:2016-06-21 17:51:54

标签: javascript angularjs session cookies

我目前正在开发一款需要跟踪会话的角度应用。我试图使用角度1.4+中的$ cookies服务来实现这一点,我特别在我的应用程序中使用了1.4.9。

问题是当我以用户身份登录时,我在成功登录后设置了我的cookie:

var cookieArray = {session_id: sessID, token_access: accessToken};
$cookies.put('my_session', cookieArray, {expires: new Date(2016,6, 30)});

登录后,我在Chrome中检查我的cookie,它显示了具有正确创建和到期日期的cookie,在这种情况下,到期日是2016年7月30日。但是,当我刷新页面时,cookie仍然被删除。我已经做了一些阅读,似乎设置expires属性应该可以解决这个问题。我已经浏览了应用,无法在代码中的任何其他地方找到感兴趣的Cookie,所以我有点困惑。

1 个答案:

答案 0 :(得分:1)

问题解决了!对于其他有类似问题的人,我认为我会分享我发现的内容。

首先在这种情况下,由于我将完整对象保存为cookie,因此请确保使用$ cookies.putObject()函数而不是$ cookies.put()。这样可以确保cookie得到正确存储,并且在刷新时不会从浏览器中删除,即使它已过期:。

其次,在检查正确的会话之前,请确保将cookie检索为$ cookies.getObject(' key')。

希望这可以帮助任何遇到问题的人使用$ cookies.put()