Рабочий процесс аутентификации passport.js для социальных сетей - PullRequest
0 голосов
/ 23 сентября 2018

Я недавно использовал passport.js в одном из своих приложений, следуя примерам в своей документации.Хотя я мог заставить это работать, я действительно не понимал рабочий процесс.
Ниже я поделюсь кодом для аутентификации через Facebook и, пожалуйста, проведите меня через рабочий процесс ...

//serialize & deserialize

passport.serializeUser(function(user, done) {
  console.log('serializeUser: ' + user._id);
  done(null, user._id);
});
passport.deserializeUser(function(id, done) {
  // getting user with id
});

// Strategy configuration 
passport.use(new FacebookStrategy({
  clientID: config.facebook.clientID,
  clientSecret: config.facebook.clientSecret,
  callbackURL: config.facebook.callbackURL
  },

  // verify callback according to the doc
  function(accessToken, refreshToken, profile, done) {
    // checking profile in db
      }
    });
  }
));

//providing routes
app.get('/auth/facebook',
  passport.authenticate('facebook'),
  function(req, res){});
app.get('/auth/facebook/callback',
  passport.authenticate('facebook', { failureRedirect: '/' }),
  function(req, res) {
    res.redirect('/account');
  });

Итак, насколько я знаю, passport.authenticate вызывает стратегию, которую мы определили, а затем проверяетcallback называется.
Но у нас также есть callbackURL в определении стратегии, который, я думаю, перенаправляет пользователя на «/ auth / facebook / callback»?Но когда это происходит?

Кроме того, почему мы дважды используем passport.authenticate в маршрутах?
Это потому, что мы перенаправлены в другое место и, следовательно, обратный вызов проверки не вызывается в первый раз?


А когда происходит сериализация и десериализация?

Также как вызывается диалог входа в Facebook?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...