로그인에 실패할 때 클라이언트에 어떤 http 상태 코드를 보내줘야 할까?
- 필수 입력값이 누락되거나 형식이 맞지 않다면,
400 Bad Request
- 아이디나 패스워드가 틀렸다면,
401 Unauthorized
- 자격 증명은 유효하지만, 권한이 없다면, (ex. 관리자 권한 필요)
403 Forbidden
의미 상으로는 이렇지만,
3번의 경우 보안상 리소스가 있다는 것을 악의적 공격자에게 알려주고 싶지 않다면, 404 Not Found
를 쓸 수 있다.
깃허브에서 이런 방식을 채택하고 있다. (권한이 없는 레포에 접근하려 할 때 404를 리턴한다.)