2016-10-26 111 views
2

我在我的應用程序中有cookie,我需要使用angularJS ngCookies來讀取它。 當我出口餅乾從瀏覽器擴展,它看起來像下面的JSON:需要通過名稱讀取cookie值angularjs

[ 
    { 
    "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); 

我得到未定義的對象。

回答

0

你的代碼似乎很好,但潛在的問題是不同的。

你有你的cookie標記爲

"httpOnly": true 

這意味着Cookie無法通過客戶端代碼,包括Angular.js訪問。

訪問它的唯一方法是更改​​生成代碼的代碼,以使cookie不標記爲httpOnly。做出這些改變有一些安全方面的考慮,所以要確保你明白你在做什麼。

您可以在OWASP web site瞭解更多關於HttpOnly的信息。

+0

好 - 考慮到標誌爲「假」現在(我知道這標誌着標誌爲假將打開XSS攻擊,但我現在並不擔心這個問題 - 我可能需要單獨考慮)。那麼你能告訴我如何閱讀JSESSIONID的價值。 – Devendra

0

要存儲cokkie,

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

爲了得到一個存儲的cookie

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

那麼JSON上面的cookie_name是什麼? – Devendra

+0

$ cookies.put(「JSESSIONID」,「00FC04BF082458FFE6F175C7E03F5712」,{「expires」:expireDate,「domain」:「domain_name」}); –

+0

如果您使用本地主機 '$ cookies.put(「JSESSIONID」,「00FC04BF082458FFE6F175C7E03F5712」,{「expires」:expireDa te,「domain」:「」});' –