身份验证和授权 Express.js :保护用户访问

身份验证和授权是确保 Web 应用程序安全的关键要素。 在该 Express.js 环境中,您可以有效地实现用户身份验证和访问授权以确保资源的安全。 以下是有关如何实现此目的的指南:

用户认证

使用身份验证 Middleware: 创建身份验证 middleware 以检查用户是否登录。

function isAuthenticated(req, res, next) {  
  if(req.isAuthenticated()) {  
    return next();  
  }  
  res.redirect('/login');  
}  
  
app.get('/profile', isAuthenticated,(req, res) => {  
  // Access profile page when logged in  
});  

 

安全资源的访问授权

使用授权 Middleware: 创建一个 middleware 来检查用户对安全资源的访问权限。

function hasPermission(req, res, next) {  
  if(req.user.role === 'admin') {  
    return next();  
  }  
  res.status(403).send('Access denied');  
}  
  
app.get('/admin', isAuthenticated, hasPermission,(req, res) => {  
  // Access admin page with proper permission  
});  

 

使用身份验证和授权库

用途 Passport.js: 使用该 Passport.js 库来简化身份验证和授权。

const passport = require('passport');  
app.use(passport.initialize());  
  
app.post('/login', passport.authenticate('local', {  
  successRedirect: '/profile',  
  failureRedirect: '/login'  
}));  
  
app.get('/admin', isAuthenticated, hasPermission,(req, res) => {  
  // Access admin page with proper permission  
});  

 

结论

身份验证和授权在保护 Web 应用程序免受安全威胁方面发挥着至关重要的作用。 通过利用 middleware、 等库 Passport.js 以及权限检查,您可以确保用户只能访问适当且安全的资源。