我有一个JWT令牌,我想将其存储在cookie中。 cookie需要至少设置HttpOnly标志,但我还想将Secure标志设置为true。
从角度文档我知道我可以将我的令牌存储在这样的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吗?
答案 0 :(得分:4)
您无法使用ngCookies执行此操作,但无法从JavaScript创建HttpOnly
Cookie,但另一种方法是对服务器进行ajax查询,以便添加{{ 1}} HTTP响应。