Play framework,如何在客户端(javascript)中访问cookie?

Play framework,如何在客户端(javascript)中访问cookie?,java,scala,cookies,playframework,Java,Scala,Cookies,Playframework,我正在尝试为我的REST端点实现 我使用Scala Playresult.withCookies(Cookie(AUTH_TOKEN,authToken))设置实现的返回结果 但是,在客户端(js)中,当我尝试使用document.cookie访问时。找不到cookie 使用response()的Java API时,setCookie(AUTH_TOKEN,authToken)似乎有所不同。它可以通过document.cookie访问 这里我遗漏了什么?可能是应用程序.conf中的httpOnl

我正在尝试为我的REST端点实现

我使用Scala Play
result.withCookies(Cookie(AUTH_TOKEN,authToken))
设置实现的返回结果

但是,在客户端(js)中,当我尝试使用
document.cookie
访问时。找不到cookie

使用
response()的Java API时,setCookie(AUTH_TOKEN,authToken)
似乎有所不同。它可以通过
document.cookie
访问


这里我遗漏了什么?

可能是
应用程序.conf中的
httpOnly
设置为true(默认情况下是这样)。这意味着您无法在客户端读取JavaScript中的cookie。 将
session.httpOnly=false
放入
application.conf


<>但请考虑.< /p> ,可能是<代码> HTTPONE./COMP>在您的<代码>应用程序中被设置为true(默认为默认值)。这意味着您无法在客户端读取JavaScript中的cookie。 将
session.httpOnly=false
放入
application.conf


但是,考虑

播放默认设置cookie上的<代码> HTTPONE./COD>标志,因此它们不能通过客户端代码(JS)访问。来自谷歌:

HttpOnly是集Cookie HTTP响应头中包含的附加标志。生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险(如果浏览器支持)

有关关闭此功能的可能方法,请参阅。特别是:

所以,在播放1时,您可以将application.session.httpOnly设置为false,但在播放2.1时,它们更改为session.httpOnly=false


我相信这些应该在application.conf中设置。希望能有所帮助。

Play在默认情况下在其cookie上设置了
HttpOnly
标志,因此它们不能通过客户端代码(js)访问。来自谷歌:

HttpOnly是集Cookie HTTP响应头中包含的附加标志。生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险(如果浏览器支持)

有关关闭此功能的可能方法,请参阅。特别是:

所以,在播放1时,您可以将application.session.httpOnly设置为false,但在播放2.1时,它们更改为session.httpOnly=false


我相信这些应该在application.conf中设置。希望这会有所帮助。

这在Play 2.5.x中对我有效,而其他涉及
application.conf
的答案则没有

Cookie(AUTH_TOKEN, authToken, httpOnly = false)
这可能是因为
application.session
只处理session cookies。例如,对于国际化cookie,您必须修改
play.i18n.langCookieHttpOnly
,等等


另一方面,上述解决方案单独处理cookie

这在Play 2.5.x中对我有效,而其他涉及
application.conf
的答案则没有

Cookie(AUTH_TOKEN, authToken, httpOnly = false)
这可能是因为
application.session
只处理session cookies。例如,对于国际化cookie,您必须修改
play.i18n.langCookieHttpOnly
,等等


另一方面,上述解决方案单独处理cookie

您认为将httpOnly设置为false会有多“不安全”?因为,我看不到我的JS通过服务器读取令牌cookie数据的其他方法。仅使用HTTPS是否足够安全?HTTPS不能防止通过XSS窃取cookie,如本文所述。要添加一些详细信息,play不会阻止您为不太安全的数据设置其他cookie
Ok(views.html.index())。WithCookie(cookie(“key”,“value”))
。默认情况下,这些都可以从javascript访问,而无需公开主Cookie。您认为将httpOnly设置为false会有多“不安全”?因为,我看不到我的JS通过服务器读取令牌cookie数据的其他方法。仅使用HTTPS是否足够安全?HTTPS不能防止通过XSS窃取cookie,如本文所述。要添加一些详细信息,play不会阻止您为不太安全的数据设置其他cookie
Ok(views.html.index())。WithCookie(cookie(“key”,“value”))
。默认情况下,这些都可以从javascript访问,而无需公开主cookie