angularjs - 用于 Https 协议(protocol)上的 angularJs 应用程序的带有 HttpOnly 标志的 Cookie

标签 angularjs cookies https httponly

我有一个使用 https 协议(protocol)与服务器通信的 Angular Js 应用程序。我使用 cookie 来存储登录的用户名和 jwt token 。下面是我用来设置 cookie 的代码。

    $cookies.putObject('token', token, {
        expires: exp,
        secure: true
      });

为了获得安全团队对我的应用程序的许可,我需要为 cookie 设置 HttpOnly 标志。

当我打开我网站的 cookie 时,我看到两个项目

  1. connect.sid - 不确定它是如何创建的。我没有做 创建此 cookie 的任何明确内容。
  2. token - 这是我创建的用于存储用户及其 jwt token 的 cookie。

我用谷歌搜索并做了必要的更改以在这些 cookie 上设置 HttpOnly 标志。它起作用了,我可以看到两个 cookie 都检查了 HttpOnly 标志。但是在此更改之后,我的身份验证停止工作(即我无法访问 cookie 中设置的 jwt)。换句话说,我与后端的通信中断了。我使用下面的语句来读取 cookie。

$cookies.getObject('token')

我必须还原一些更改才能回到以前的状态。现在,connect.sid cookie 设置了 HttpOnly 标志,而 token cookie 则没有。我想知道这里一定是什么问题。我是 Angular Js 的新手,之前从未从事过 Cookie 管理工作。任何帮助将不胜感激。

最佳答案

HttpOnly cookie 意味着无法从 JavaScript 等脚本语言访问它。所以在 JavaScript 中绝对没有可用的 API 来获取/设置 cookie 的 HttpOnly 属性,否则会破坏 HttpOnly 的含义。

只需从服务器设置您的“ token ”cookie。

关于angularjs - 用于 Https 协议(protocol)上的 angularJs 应用程序的带有 HttpOnly 标志的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44307085/

相关文章:

angularjs - 简单的 AngularJS 片段在 jsfiddle 中不起作用

c# - 为什么有些 cookie 在域之前有一个 '.'?

JAVA:通过 HTTPS POST 数据似乎没有发送?

node.js - 如何将 https 代理与 node.js https/request 客户端一起使用?

ssl - DigitalOcean & Letsencrypt - 如何为 HTTPS 安装 SSL

javascript - Angular js bootstrap 模式问题

javascript - Angular Material Radio Button 模型未更新

javascript - 加载 JSON 并将其显示在我的 Angular 应用程序中的所有 View 上

php - 读取 HTTP 响应 header 中的 Set-Cookie 指令

c# - 为什么在 Request.Cookies[FormsAuthentication.FormsCookieName] 中找不到 ASPXAUTH cookie?