📜  passport.initialize() 中间件未使用 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:25.346000             🧑  作者: Mango

使用passport.initialize()中间件

当我们在Node.js应用程序中使用Passport身份验证库时,我们需要使用passport.initialize()中间件来初始化Passport。使用此中间件是为了确保req.user在以下请求处理程序中可用。

初始化Passport

对于Express应用程序,我们需要这样配置:

const express = require('express');
const passport = require('passport');

const app = express();

app.use(passport.initialize());

以上代码告诉Express在请求被路由之前使用passport.initialize()中间件,从而初始化Passport。这将在req对象上添加一个passport属性,它是由Passport.initialize()中间件提供的。

确保req.user可用

假设我们要使用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在所有路由处理程序中具有正确的值,并让我们确定用户是否已登录。