如何在ngCookies中设置httpOnly标志?

时间:2015-05-10 19:27:09

标签: javascript angularjs cookies jwt httponly

我有一个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吗?

1 个答案:

答案 0 :(得分:4)

您无法使用ngCookies执行此操作,但无法从JavaScript创建HttpOnly Cookie,但另一种方法是对服务器进行ajax查询,以便添加{{ 1}} HTTP响应。

相关:Set a cookie to HttpOnly via Javascript