Я использую cookie-session
и могу декодировать cookie из заголовков, используя это решение https://github.com/expressjs/cookie-session/issues/117#issuecomment-452046225:
// 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.
Как мне это сделать?