Зачем нужен serializeUser и deserializeUser, а так же process.nextTick?

Использую passport-vkontakte для авторизации в приложении через VK.
Два вопроса:
1) Зачем нужен serializeUser и deserializeUser
2) Зачем нужен processNexttick

Про первый пункт:
// Passport session setup.
//   To support persistent login sessions, Passport needs to be able to
//   serialize users into and deserialize users out of the session.  Typically,
//   this will be as simple as storing the user ID when serializing, and finding
//   the user by ID when deserializing.  However, since this example does not
//   have a database of user records, the complete VK profile is serialized
//   and deserialized.
passport.serializeUser(function(user, done) {
  done(null, user);
});

passport.deserializeUser(function(obj, done) {
  done(null, obj);
});

Хоть комментарии и есть, но не очень понимаю суть, которую несет серелизация и десерелизация. При авторизации вызывается основная стратегия, в которой можно сделать все необходимые вещи (в том числе занести пользователя в бд или проверить что-то), а зачем эти функции?

Про второй пункт:
passport.use(new VkStrategy(
  {
    clientID: VK_APP_ID,
    clientSecret: VK_APP_SECRET,
    callbackURL: "http://localhost:3000/auth/vk/callback",
    scope: ['email'],
    profileFields: ['email'],
  },
  function verify(accessToken, refreshToken, params, profile, done) {
    // asynchronous verification, for effect...
    process.nextTick(function () {
      return done(null, profile);
    });
  }
));

"asynchronous verification, for effect..." вообще непонятный комментарий, к чему тут этот nextTick? Что будет, если я его уберу?
  • Вопрос задан
  • 3455 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DarCKoder
Уже прошло более трех месяцев, но может кому-нибудь поможет:
https://habrahabr.ru/post/201206/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы