23.3.2 로그인 구현하기
이번에는 로그인 기능을 구현해 봅시다. login 함수를 다음과 같이 작성합니다.
src/api/auth/auth.ctrl.js - login
/* POST /api/auth/login { username: 'velopert', password: 'mypass123' } */ export const login = async ctx => { const { username, password } = ctx.request.body; // username, password가 없으면 에러 처리 if (!username || !password) { ctx.status = 401; // Unauthorized 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); } };