Разница между сеансами Express и PassportJS

Я рассматриваю возможность использования экспресс-сеанса для хранения токенов доступа для пользователей, прошедших проверку подлинности у поставщика OAuth 2, и предоставления клиентскому приложению надежно подписанного файла cookie.

Насколько я понимаю, я могу затем получить токен, связанный с файлом cookie, в последующих запросах со стороны сервера хранилища сеансов, например, mongodb, который затем я могу использовать, скажем, в заголовке авторизации носителя в запросах на разделение конечной точки с использованием экспресс-маршрутов.

Я столкнулся с PassportJS и пытаюсь понять, нужно ли мне использовать его в моей настройке.

В настоящее время я обрабатываю POST-запросы на вход в свое экспресс-приложение, а затем делаю запрос токена доступа, используя поток запросов типа предоставления учетных данных владельца ресурса. Это работает нормально, и я получаю токен доступа вместе с токеном обновления и сроком действия от поставщика.

Из того, что я могу сказать, PassportJS предлагает стратегии аутентификации для всех видов провайдеров, но я не уверен, что он будет поддерживать тип гранта, используемый в моем случае. Кроме того, я уже выполняю работу по запросу и получению токена, поэтому не уверен, насколько полезным будет для меня PassportJS.

Прочитав документы экспресс-сеанса, я думаю, что это даст мне все, что мне нужно, плюс я могу установить срок действия файла cookie на основе времени истечения срока действия токена, которое я получаю от шлюза API.

Я думаю, что PassportJS находится над экспресс-сеансами и просто получает доступ к экспресс-сгенерированному сеансу, это правильно?


person mindparse    schedule 09.01.2016    source источник


Ответы (1)


Если вы уже реализовали необходимые стратегии аутентификации и вам нужно только хранить токены для идентификации пользователей и удержания их в системе, тогда экспресс-сеанс — это все, что вам нужно. Сеансовый файл cookie, используемый экспресс-сеансом, подписывается и проверяется при чтении и т. д.

Я думаю, что PassportJS находится над экспресс-сеансами и просто получает доступ к экспресс-сгенерированному сеансу, это правильно?

Да это верно. Однако вам не нужно использовать сеансы с Passport.js (см. «Отключение сеансов» в документации Passport.js).

В документации Passport.js (http://passportjs.org/docs) также поясняется, что Passport.js — это просто проверка подлинности. промежуточное ПО:

Он предназначен для единственной цели: аутентификации запросов. При написании модулей инкапсуляция является преимуществом, поэтому Passport делегирует все остальные функции приложению.

person Markus Slabina    schedule 01.04.2016