Зачем использовать к паспорту ie -сессию js? - PullRequest
2 голосов
/ 14 июля 2020

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

Вместо express-session я использую cookie-session, поскольку я новичок. Насколько я понимаю, cook ie -session каждый раз отправляет идентификатор сеанса, и этот идентификатор можно использовать для поиска в базе данных при необходимости.

Теперь я не Не понимаю, почему мы не можем просто использовать паспорт. js ID? Зачем нам дополнительно использовать cook ie -session? Кроме того, (это может быть немного не связано, но) разница между аутентификацией на основе сеанса и аутентификацией на основе токенов заключается в том, что этот общий идентификатор является динамическим c или меняется каждый раз? Будет ли это по-прежнему стандартным и современным способом сделать это в 2020 году?

1 Ответ

0 голосов
/ 16 июля 2020

Вам не нужно использовать сеанс. Это полностью зависит от вас. Просто введите {session: false} в маршрут. passport.serializeUser и passport.deserializeUser писать не нужно. cookie-session помещает cook ie в клиентскую систему, и она отправляется каждый раз с запросом. Паспорт js найдите этот Cook ie и запустите deserializeUser, чтобы преобразовать его в объект и присоединить к объекту запроса.

express-session сохраняет данные сеанса на сервере; в файле cook ie сохраняется только идентификатор сеанса, но не данные сеанса. где cookie-session в основном используется для облегченных сеансовых приложений. это позволяет вам хранить данные сеанса в cook ie, но внутри клиента [браузера]. Используйте его только тогда, когда данные сеанса относительно малы и легко кодируются как примитивные значения См. Этот вопрос для большего понимания

const express = require('express');
const { Router } = express;
const router = new Router();
router
  .get('/', passport.authenticate('google', { session: false }))
...