如何在ngCookies中设置httpOnly标志?

rub*_*lex 6 javascript cookies httponly jwt angularjs

我有一个JWT令牌,我想存储在cookie中.cookie需要至少设置HttpOnly标志,但我还想将Secure标志设置为true.

从角度文档我知道我可以将我的令牌存储在这样的cookie中:

// using 'ngCookies'

createToken(jwt_token) {
    $cookies.put('jwt', jwt_token);
},
retrieveToken() {
    return $cookies.get('jwt');
}
Run Code Online (Sandbox Code Playgroud)

但目前尚不清楚如何指定HttpOnly和Secure标志.该文件说有一个选项字段put()get(),但是随后它提到 $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');
}
Run Code Online (Sandbox Code Playgroud)

还是完全错了?我也没有看到任何HttpOnly标志,但我确实看到domain了我设置的标志www.mydomain.com.这相当于HttpOnly = true吗?

Ayo*_*ich 5

你不能使用 ngCookies 来做到这一点。一个HttpOnlyCookie无法从JavaScript创建,替代然而,就是让一个Ajax查询,将增加一个服务器的Set-CookieHTTP响应。

相关:通过 Javascript 将 cookie 设置为 HttpOnly