TDD 연습 프로젝트 11 - 멤버 토큰로그인 API

zunzero·2022년 9월 17일
0

스프링, JPA

목록 보기
19/23

이번엔 로그인 과정에서, 응답으로 쿠키에 세션값을 넣어주는 것이 아닌 ResponseBody에 토큰 값을 포함시켜서 응답하는 방식을 채택하도록 하겠다.

토큰 로그인 API

요구사항

  • 토큰 로그인 API
    - 기능: 토큰을 통한 로그인 기능을 구현한다.
    • 요청: 사용자 Email, 사용자 비밀번호
    • 응답: 사용자 이름, 사용자 Email, 토큰값

Repository 계층 개발

Repository 계층은 이전과 마찬가지로 추가로 개발할 내용이 없다.

Service 계층 개발

TokenService에 대한 계층을 개발하도록 하겠다.

Token을 생성하는 createToken메서드와 Token을 파싱하는 parseToken 메서드를 만들었다.
parseToken 메서드를 이용해서 사용자의 id값과 이름을 뽑아낼 수 있는 메서드 또한 구현했다.
이 때, token값 앞에 "Bearer " 값이 붙어야 에러가 생기지 않도록 해주었다.
JWT 토큰과 OAauth에 대한 토큰은 Bearer 인증 타입의 스펙이기 때문에 "Bearer xxx.yyy.zzz"의 형태로 주고 받아야 한다.

Controller 계층 개발

Controller 계층은 TokenService와 LoginService의 메서드를 적절히 사용해서 로그인 할 수 있도록 구현했다.

다음으로, 세션은 인터셉터, 토큰은 필터를 활용해서 모든 request가 미리 인가를 받도록 구현하도록 하겠다.

profile
나만 읽을 수 있는 블로그

0개의 댓글