jm_p_op
permission 본문
모든 api요청의 권한이 있음으로
defult값은 all로 잡자.
DB에 저장후 cache로 뽑아서 관리
- 권한이 All 혹은 겹치는것이 있다면, true값 반환
async function PermissionAPICheck(api,user_perm){
perms=await permissionAPI.get(api)
if (!perms){
return undefined
}
if (perms[0]=='All'){
return true
}
for (i in user_perm){
if (perms.includes(user_perm[i])){
return true
}
}
return false
}
- 권한이 true이면 next를 통해 원래 url 실행
- false이면 권한401.1 제공
- undefine이면 url이 없는것으로 404에러 제공
- req.log_in_user을 통해 로그인 정보 교환
router.use("", async (req, res, next)=>{
//log_in
let log_in_user = await jwt.verify(req.headers.authorization)
req.log_in_user=log_in_user
add={IP:req.ip,
userId:log_in_user.id,
url:req.method+req.url}
UserIPLog.create(add)
//permission
if (add.url.slice(-1)=='/'){
add.url=add.url.slice(0,-1)
}
let bool_permission=await permission.PermissionAPICheck(add.url,log_in_user.auth)
if (bool_permission){
next();
}
else if (bool_permission==false){
if (log_in_user.response){
return res.send(log_in_user)
}
else{
res.send(await error_message.get(19))
}
}
else{
res.send(await error_message.get(20,add.url))
}
});
'Node.js > Express' 카테고리의 다른 글
fk으로 잡은 pk_column 변경하기 (0) | 2024.05.16 |
---|---|
multer - 파일 받기 (0) | 2024.05.14 |
express - app (0) | 2024.05.09 |
error_message관리 (0) | 2024.05.07 |
Excel을 통한 seed/migration데이터 관리 (0) | 2024.05.06 |