공부하기/React
[React] 블로그 만들기 7 - 로그인 구현
다섯자두
2022. 3. 15. 16:28
- src/api/auth/auth.ctrl.js
export const login = async (ctx) => {
// 로그인
const { username , password } = ctx.request.body;
// username, password 없으면 에러 처리
if(!username || !password) {
ctx.status = 401;
return;
}
try{
const user = await User.findByUsername(username);
// 계정이 존재하지 않으면 에러 처리
if(!user) {
ctx.status = 401;
return;
}
const valid = await user.checkPassword(password);
// 비밀번호가 일치하지 않는 경우
if(!valid){
ctx.status= 401;
return;
}
ctx.body = user.serialize();
} catch(e) {
ctx.throw(500,e);
}
};
1) username, password 값이 제대로 전달되지 않은 경우 -> 에러처리
2) static 함수인 findByUsername를 통해 사용자 검색
-> 존재하지 않을 경우 -> 에러처리
3) instance 함수인 checkPassword를 통해 비밀번호 일치 확인
-> 일치하지 않을 경우 -> 에러처리
4) 로그인 성공
- Postman

테스팅 결과 성공적으로 로그인이 완료됨을 확인하였다.


비밀번호가 일치하지 않는 케이스의 경우와 존재하지 않는 계정명으로 로그인을 시도한 경우 모두 401에러 (Unauthorized)가 발생함을 확인하였다.