2017-10-11 49 views
-2

我通過快速設置密鑰:res.cookie('name','value', {signed:true}); ,並希望在解析客戶端的JavaScript簽署的餅乾,如document.cookie$.cookie(),但我不能找出哪裏有任何API。 有人知道嗎?如何通過JavaScript或jQuery來解析在客戶簽署的cookie

+1

究竟是什麼問題?你的cookie不會出現在'document.cookie'的列表中? – msanford

+0

https://stackoverflow.com/questions/5639346/what-is-the-shortest-function-for-reading-a-cookie-by-name-in-javascript – epascarello

+0

它顯示,但它被加密。這是我通過document.cookie.name或$ .cookie('name):s:0.vunrLqeI9xNAJFmibUmCeWeI3vDS9m/mbnkAZiVubU'得到的。如你所知,我們可以在服務器端解析cookie。如'req.signedCookies',但在客戶端,沒有這樣的API來做到這一點。 –

回答

1

由於cookie值爲s:0.vunrLqeIl9xNAJFmibUmCeWeI3vDS9m/mbnkAZiV‌​ubU,其值將爲0。前綴s:表示其簽名的cookie,後綴.vunr...ubU是實際的簽名。

所以提取值,你可以使用這樣的事情:

let value = $.cookie('name').match(/^s:(.*)\..*$/)[1]; 

或者,如果你使用類似的WebPack或Browserify一個捆綁,您可以使用它實際使用的模塊在Express中創建並驗證已簽名的Cookie:cookie-signature

+0

非常感謝。我認爲客戶端中有直接使用的API,但似乎仍然需要使用webpack將模塊綁定到前端。 –

相關問題