認証と認可 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  
});  

 

安全なリソースへのアクセス許可

Use Authorization 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 、ユーザーが適切で安全なリソースにのみアクセスできるようにすることができます。