2017-10-11 3 views
-2

i geheimen Schlüssel von Express gesetzt: res.cookie('name','value', {signed:true}); und wollen das signierte Cookie im Client-JavaScript aktivieren, wie document.cookie oder $.cookie(), analysieren, aber ich kann Sie nicht heraus finden, wo es jede API dafür. Weiß jemand davon?wie in Client über Javascript oder Jquery unterzeichnet Cookie analysieren

+1

Was ist das Problem, genau? Wird Ihr Cookie nicht in der Liste von 'document.cookie' angezeigt? – msanford

+0

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

+0

es erscheint, aber es ist verschlüsselt. das ist, was ich von document.cookie.name oder $ .cookie ('name): 's: 0.vunrLqeIl9xNAJFmibUmCeWeI3vDS9m/mbnkAziVubU'. Wie Sie wissen, können wir Cookies serverseitig analysieren. wie 'req.signedCookies', aber auf der Client-Seite gibt es keine API dafür. –

Antwort

1

Bei einem Cookie-Wert von s:0.vunrLqeIl9xNAJFmibUmCeWeI3vDS9m/mbnkAZiV‌​ubU ist der Wert 0. Das Präfix s: bedeutet, dass es ein signiertes Cookie ist und das Suffix .vunr...ubU die tatsächliche Signatur ist.

So um den Wert zu extrahieren, können Sie so etwas wie dieses verwenden:

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

Oder, wenn Sie einen Bündler wie Webpack oder Browserify verwenden, können Sie das aktuelle Modul verwenden können, die sie verwendet, Erstellen und Überprüfen signierter Cookies in Express: cookie-signature.

+0

vielen Dank. Ich dachte, es gibt eine Standard-API im Client, die direkt verwendet werden kann, aber es scheint immer noch Webpack zu verwenden, um das Modul in das Frontend zu bündeln. –