Я понял, как использовать паспорт в Node Express, но есть несколько вещей, которые действительно смущают меня из-за его работы за кулисами.
По меньшей мере, я создал такую же паспортную стратегию, как эта
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: process.env.GOOGLE_CALLBACK_URL,
userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo'
}, (accessToken, refreshToken, profile, cb) => {
console.log(profile)
// Extract the minimal profile information we need from the profile object
// provided by Google
cb(null, extractProfile(profile));
}));
Теперь, чтобы использовать эту стратегию в моих маршрутах аутентификации, я должен экспортировать ее в свои маршруты
const passport = require('passport')
const passportGoogle = require("./../auth/google.js")
и затем используйте его
router.get("/google", passport.authenticate('google', { scope: ['profile', 'email'] }));
router.get("/google/callback", passport.authenticate('google'), (req, res) => {
console.log(req)
res.redirect(process.env.CLIENT_ADDRESS)
})
С этого вопроса Я понял, что нам не нужно ничего экспортировать в паспорте, потому что мы используем singleton но тогда зачем нам импортировать
const passportGoogle = require("./../auth/google.js")
, когда мы ничего с ним не делаем в наших аутентификационных маршрутах ?