在斯卡拉粘饼干(Sticky Cookies in Scala)

2019-10-30 02:35发布

我给自己定的斯卡拉类似于下面的一个cookie:

val cookies:Seq[Cookie] = new Seq()
val nDaysExpire:Int = 2000
val nSecondsExpire:Int = nDaysExpire * 24 * 60 * 60
val cookie:Cookie = new Cookie(sCookieID, sValue, Option(nSecondsExpire))
cookies = cookies:+ cookie
Ok(views.html.main(sID)).withCookies(cookies:_*)

然后我立即删除在JavaScript中的cookie。 我甚至已经删除了页面加载30秒后的饼干。

当我重新加载页面时,Scala代码仍然可以看到该cookie。 但在JavaScript中,Cookie是没有,当我打电话找到其中:document.cookie中。

这是怎么回事?

Answer 1:

根据该文档 ,为构造函数Cookie有一个名为布尔参数httpCookie 。 默认值是true

仅Http饼干不能由JavaScript可以看出。 所以,如果你想删除从JavaScript您的Cookie,尝试将该值设置为false。

val cookie:Cookie = new Cookie(sCookieID, sValue, Option(nSecondsExpire), httpOnly = false)

杰夫·Atwoord在保护您的饼干:仅Http

当你标记用的HttpOnly标志一个cookie,它告诉浏览器,这个特定的cookie只能由服务器进行访问。 访问从客户端脚本cookie的任何企图,严禁。



文章来源: Sticky Cookies in Scala