如何通过JavaScript或jQuery来解析在客户签署的cookie

问题描述:

我通过快速设置密钥:res.cookie('name','value', {signed:true}); ,并希望在解析客户端的JavaScript签署的饼干,如document.cookie$.cookie(),但我不能找出哪里有任何API。 有人知道吗?如何通过JavaScript或jQuery来解析在客户签署的cookie

+1

究竟是什么问题?你的cookie不会出现在'document.cookie'的列表中? – msanford

+0

https://*.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来做到这一点。 –

由于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将模块绑定到前端。 –