如何将req.sessionID转换为connect.sid?

时间:2019-07-09 16:33:02

标签: express

我可以看到req.sessionID,就像yeVIo68JZHLb9rvA3Js2MY6RMOo1p29S

在浏览器控制台中,我可以看到connect.sid,它看起来像这样s%3AEsvCST_KXoCmyD1ixT1Elksp7WQU5Bwp.a1zlev0vJ0dNESbPCeOXZq3jsPAsAGCS7O0KTyrOTAU

我看了一下cookie-signature库,它与我在connect.sid中看到的库并不相同,因为它的签名中带有“ hello”一词。

var cookie = require('cookie-signature');
var val = cookie.sign('hello', 'tobiiscool');
val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI');

如何将req.sessionID转换为connect.sid

1 个答案:

答案 0 :(得分:0)

import * as crypto from 'crypto';

const getConnectSid = (sessionID) => {
  return 's.'+sessionID+'.'+crypto.createHmac('sha256', process.env.COOKIE_SECRET) .update(sessionID).digest('base64').replace(/\=+$/, '');
}