Использую
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? Что будет, если я его уберу?