인증 및 권한 부여는 웹 애플리케이션의 보안을 보장하는 데 중요한 요소입니다. 환경 에서 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
});
결론
인증 및 권한 부여는 보안 위협으로부터 웹 애플리케이션을 보호하는 데 중요한 역할을 합니다. middleware, 와 같은 라이브러리 Passport.js 및 권한 검사를 활용하여 사용자가 적절하고 안전한 리소스에만 액세스할 수 있도록 할 수 있습니다.