해결된 질문
작성
·
356
·
수정됨
0
async loginUser({ email, password, context }) {
const user = await this.userService.findOne({ email });
if (!user) throw new UnprocessableEntityException('이메일이 없습니다.');
const isAuth = bcrypt.compare(password, user.password);
if (!isAuth)
throw new UnprocessableEntityException('비밀번호가 틀렸습니다.');
await this.setRefreshToken({ user, res: context.res });
return await this.setAccessToken({ user, res: context.res });
}
이렇게 아이디 비번이 다를때 오류 처리를 해주었는데
client에 넘어가는 status코든는 200이 뜨네요 왜 그럴까요?
답변 1
0
어쩌다 보니 스스로 알아냈네요
REST API의 경우, 다양한 API 요청의 상태에 따라 HTTP status 코드를 내려 줍니다. 반면에 Graphql의 경우, 모든 요청에 대해 200 OK status 코드를 내려주기 때문에, status 코드만으로 API 상태를 구분하고, 관리하는데 어려움이 있다고 합니다.
대신, GraphQL에서는 errors 필드를 통해 오류 메시지를 반환하고, 프론트엔드에서는 errors 필드를 확인하여 요청이 성공적으로 처리되었는지 여부를 결정할 수 있다고 합니다.