
333
18
장
보안
req.logout()
res.redirect(‘/’)
})
이제 인증된 사용자만 계정 페이지를 볼 수 있으며, 그 외에는 모두 인증되지 않음 페이지로 리
디렉트됩니다.
18.3.7
역할 기반 권한 부여
그동안은 권한 부여를 하지 않았습니다. 사용자의 인증 여부만 구별했을 뿐입니다. 오직 고객
만 자신의 계정 내역을 볼 수 있게 구현합시다(직원도 사용자 계정 정보를 볼 수 있지만 이들
은 다른 뷰를 사용합니다).
라우트 하나에 순서대로 호출되는 함수 여럿을 둘 수 있다는 건 이미 설명했습니다. 고객만 허
용하는
customerOnly
함수를 다음과 같이 만듭니다.
const customerOnly = (req, res, next) => {
if(req.user && req.user.role === ‘customer’) return next()
// 고객이 로그인할 수 있는 고객 전용 페이지
res.redirect(303, ‘/unauthorized’)
}
조금 다르게 동작하는
employeeOnly
함수도 만듭시다. 직원만 사용할 수 있는
/
sales
경로
가 있다고 합시다. 또한 직원이 아닌 사람이 우연히 해당 경로를 직접 입력한다 하더라도 그 존
재를 알 수 없게 하고 싶습니다. 잠재적 공격자가
/
sales
경로에 방문했다가 인증되지 않음 페