【问题标题】:Need to read cookies value by it's name angularjs需要通过名称 angularjs 读取 cookie 值
【发布时间】:2017-03-08 08:15:15
【问题描述】:

我的应用程序中有 cookie,我需要使用 angularJS ngCookies 读取它。 当我从浏览器扩展导出 cookie 时,它​​看起来像下面的 json:

[
  {
    "domain": "localhost",
    "hostOnly": true,
    "httpOnly": false,
    "name": "JSESSIONID",
    "sameSite": "no_restriction",
    "secure": true,
    "session": true,
    "storeId": "0",
    "value": "00FC04BF082458FFE6F175C7E03F5712",
    "id": 18
  }
]

这个 JSON 中可以有更多对象以及“JSESSIONID”。所以我只想读取 JSESSIONID 的值。

我的代码:

 var jsessionCookie = $cookies.get('JSESSIONID');
 console.log(" Cookies 'JSESSIONID' : "+jsessionCookie);

我得到未定义的对象。

【问题讨论】:

    标签: angularjs angular-cookies


    【解决方案1】:

    您的代码看起来不错,但根本问题不同。

    您的 cookie 标记为

    "httpOnly": true
    

    这意味着 cookie 不能被包括 Angular.js 在内的客户端代码访问。

    访问它的唯一方法是更改​​生成代码的代码,这样 cookie 就不会被标记为httpOnly。进行更改时需要考虑一些安全问题,因此请确保您了解自己在做什么。

    您可以在OWASP web site 阅读有关 HttpOnly 的更多信息。

    【讨论】:

    • 好的 - 现在考虑该标志为“假”(我知道将标志标记为 false 会引发 XSS 攻击,但我并不担心现在这个问题 - 我可能需要考虑分开)。那你能告诉我如何读取 JSESSIONID 的值。
    【解决方案2】:

    要存放可可饼,

    $cookies.put("cookie_name","cookie_value",{"expires":expireDate,"domain":"domain_name"});
    

    获取存储的 cookie

    var cookieValue = $cookies.get("cookie_name);
    

    【讨论】:

    • 那么 JSON 上面的 cookie_name 是什么?
    • $cookies.put("JSESSIONID","00FC04BF082458FFE6F175C7E03F5712",{"expires":expireDate,"domain":"domain_name"});
    • 如果你使用的是本地主机$cookies.put("JSESSIONID","00FC04BF082458FFE6F175C7E03F5712"‌​,{"expires":expireDa‌​te,"domain":""});
    • 并且 expires 值不是强制性的,如果您没有设置,cookie 将一直存在,直到您的浏览器会话结束。
    • 我没有放/写 cookie。我想读取 JSESSIONID Cookie,我使用 $cookies.get("JSESSIONID");但得到了未定义的对象。
    猜你喜欢
    • 2013-09-02
    • 2016-09-08
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2011-06-26
    • 2012-11-17
    相关资源
    最近更新 更多