我使用cookie-session
,并且可以使用此解决方案https://github.com/expressjs/cookie-session/issues/117#issuecomment-452046225来解码标题中的cookie:
// session=eyJwYXNzcG9ydCI6eyJ1c2VyIjoiNWNiMzdiYzUzZTA2M2YxN2U2M2EzNDdkIn19; session.sig=wCuMz6lIsok00-Dqir3pnblJcAc
const parsedCookies = cookie.parse(req.headers.cookie)
const session = JSON.parse(Buffer.from(parsedCookies.session, 'base64').toString('utf8'))
如果正确,我希望允许客户端建立WebSocket连接。
我还有parsedCookies.sig
内的签名。
会话值与此类似:
{ passport: { user: '5cb37bc53e063f17e63a347d' } }
我在服务器端看到此值,它是正确的。但是,我想知道用户是否未对此进行修改,所以我想对照session
的值检查sig
。如果修改了,我想关闭WebSocket连接。
我该怎么做?
答案 0 :(得分:0)
我建议使用JWT令牌生成令牌。 JWT使用密钥对提供的用于生成令牌的参数进行编码,通常我们提供用户名,时间戳和用户ID。
执行以下步骤,
有关更多详细信息,您可以访问JWT