【问题标题】:How to set httpOnly flag in ngCookies?如何在 ngCookies 中设置 httpOnly 标志?
【发布时间】: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?

【问题讨论】:

标签: javascript angularjs cookies jwt httponly


【解决方案1】:

您不能使用 ngCookies 做到这一点。无法从 JavaScript 创建 HttpOnly cookie,但另一种方法是向服务器发出 ajax 查询,该查询将添加 Set-Cookie HTTP 响应。

相关:Set a cookie to HttpOnly via Javascript

【讨论】:

    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    相关资源
    最近更新 更多