如何在 ngCookies 中设置 httpOnly 标志?
Posted
技术标签:
【中文标题】如何在 ngCookies 中设置 httpOnly 标志?【英文标题】:How to set httpOnly flag in ngCookies? 【发布时间】:2015-07-21 06:05:38 【问题描述】:我有一个想要存储在 cookie 中的 JWT 令牌。 cookie 至少需要设置 HttpOnly 标志,但我还想将 Secure 标志设置为 true。
从 angular 文档中我知道我可以像这样将我的令牌存储在 cookie 中:
// using 'ngCookies'
createToken(jwt_token)
$cookies.put('jwt', jwt_token);
,
retrieveToken()
return $cookies.get('jwt');
但不清楚如何指定 HttpOnly 和 Secure 标志。 The docs say 它有一个put()
和get()
的选项字段,但then it mentions $cookiesProvider
。我不确定它是如何适应的,或者应该在哪里声明,或者每次我执行put()
或get()
时是否需要设置它?
会不会是这样的:
createToken(jwt_token)
$cookiesProvider['domain'] = 'www.mydomain.com';
$cookiesProvider['secure'] = true;
$cookies.put('jwt', jwt_token);
,
retrieveToken()
$cookiesProvider['domain'] = 'www.mydomain.com';
$cookiesProvider['secure'] = true;
return $cookies.get('jwt');
或者这完全错误?我也没有看到任何 HttpOnly 标志,但我确实看到了 domain
,我将其设置为 www.mydomain.com
。是否等同于 HttpOnly = true?
【问题讨论】:
Set a cookie to HttpOnly via javascript的可能重复 【参考方案1】:您不能使用 ngCookies 做到这一点。无法从 JavaScript 创建 HttpOnly
cookie,但另一种方法是向服务器发出 ajax 查询,该查询将添加 Set-Cookie
HTTP 响应。
相关:Set a cookie to HttpOnly via Javascript
【讨论】:
以上是关于如何在 ngCookies 中设置 httpOnly 标志?的主要内容,如果未能解决你的问题,请参考以下文章