Как загрузить сеанс по идентификатору пользователя, используя node.js/express/passport/redis?

StackOverflow https://stackoverflow.com//questions/22021784

Вопрос

У меня есть приложение, которое использует Redis в качестве хранилища сеансов, паспорт для аутентификации и все остальное поверх Express.

Когда пользователь входит в систему, объект, хранящийся в кеше, имеет структуру, подобную этой:

{
     cookie : {cookie info, expiration, etc},
     passport : { user : 'userid' }
}

Мой вопрос:Есть ли простой способ загрузить этот сеанс (или идентификатор сеанса) внутри приложения node.js, указав только поле «userid»?(например. loadSession(userid), где loadSession возвращает идентификатор сеанса или сам сеанс).

Предпочтительна собственная альтернатива Passport/Express/Connect-Redis.

Мое намерение состоит в том, чтобы сделать недействительным определенный сеанс в данный момент, не требуя от пользователя выполнения HTTP-запроса к моему приложению, т.е.без req.session.

Заранее спасибо.

Это было полезно?

Решение

Как упоминалось в комментариях, если userid это все, что у вас есть, вам нужно будет добавить node-redis модуль и найдите запись с этим userid - это невозможно сделать с connect-redis в одиночку, поскольку этот модуль предназначен ТОЛЬКО для обработки сеансов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top