如何在 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 标志?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 中 AngularJS 的 ngcookie 等价于啥? [关闭]

如何在 Netbeans 中设置环境变量?

如何在 Android 中设置 libsvm?

如何在 Laravel 中设置全局变量?

如何在代码中设置绑定?

如何在协议扩展中设置委托