我了解了如何在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)
})
从this question,起,我意识到我们不需要导出护照中的任何东西,因为我们使用的是 singleton ,但是为什么我们需要导入
const passportGoogle = require("./../auth/google.js")
当我们在身份验证路由中不对其进行任何处理时?