Аннулирование сеансов при смене пароля — Sailsjs

Как аннулировать активные сеансы конкретного пользователя при изменении его/ее пароля?

Sails не предоставляет доступ к сеансам глобально, и к каждому сеансу можно получить доступ только через объект request в контроллере, поэтому я не могу найти способ получить доступ ко всем активным сеансам конкретного пользователя.

Я мог бы запросить коллекцию sessions напрямую, если бы не сериализовал сеансы, поскольку я использую монго в качестве хранилища сеансов, но я не могу найти способ получить доступ к адаптеру монго для выполнения запроса.


person galactocalypse    schedule 31.07.2015    source источник


Ответы (1)


У вас есть два варианта выполнения запроса монго:

  1. npm install mongodb и просто используйте его для ручного доступа к тому, что вам нужно (https://www.npmjs.com/package/mongodb )
  2. Создайте «тупую» модель (просто чтобы дать Waterline возможность подключиться к Mongo, если у вас еще нет моделей, использующих Mongo) или используйте существующую модель и просто используйте Model.native() (http://sailsjs.org/documentation/reference/waterline-orm/models/native)
person Ben Fried    schedule 02.08.2015
comment
Спасибо за отзыв. Я думал о втором варианте, но не счел его разумным, потому что сеансы и модели обрабатываются разными адаптерами с разными конфигурациями. Кроме того, я бы очень хотел избежать доступа к сеансам вручную. Нет ли какой-то стандартной процедуры, по которой люди обращаются за этим? Потому что в противном случае, если вы измените свой пароль в одном сеансе, вы все равно останетесь аутентифицированными во всех других активных сеансах. - person galactocalypse; 02.08.2015