📅  最后修改于: 2023-12-03 15:33:25.346000             🧑  作者: Mango
当我们在Node.js应用程序中使用Passport身份验证库时,我们需要使用passport.initialize()
中间件来初始化Passport。使用此中间件是为了确保req.user
在以下请求处理程序中可用。
对于Express应用程序,我们需要这样配置:
const express = require('express');
const passport = require('passport');
const app = express();
app.use(passport.initialize());
以上代码告诉Express在请求被路由之前使用passport.initialize()
中间件,从而初始化Passport。这将在req
对象上添加一个passport
属性,它是由Passport.initialize()
中间件提供的。
假设我们要使用Passport进行身份验证,并在用户登录后显示他们的个人资料。以下是一个基本的路由处理程序,它在用户被登录后重定向到他们的个人资料页面:
app.get('/profile', (req, res) => {
// 如果用户已登录,则req.user会包含用户信息
if (req.user) {
res.render('profile', { user: req.user });
} else {
res.redirect('/login');
}
});
如果我们没有使用passport.initialize()
中间件,req.user
将始终是undefined
,并且我们将无法确定用户是否已登录。因此,在使用Passport进行身份验证时,确保每个路由处理程序都可以访问req.user
属性非常重要。
在使用Passport进行身份验证时,确保在Express应用程序中使用passport.initialize()
中间件非常重要。这将确保req.user
在所有路由处理程序中具有正确的值,并让我们确定用户是否已登录。