-
로그인 API를 설계&개발해보자!프로젝트 2023. 12. 15. 15:02
지난 포스팅 회원가입 API 개발에서부터 이어서 시작해보겠습니다.
https://yoosup0920.tistory.com/34
로그인 API를 개발하기 위한 요구사항부터 먼저 확인해 보겠습니다.
로그인 API 요구사항
- 닉네임, 비밀번호를 request에서 전달받기
- 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤, 하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요."라는 에러 메세지를 response에 포함하기
- 로그인 성공 시, 로그인에 성공한 유저의 정보를 JWT를 활용하여 클라이언트에게 Cookie로 전달하기
아래는 build.gradle의 dependencies에 추가한 프레임워크들입니다.
더보기// JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // SECURITY implementation 'org.springframework.boot:spring-boot-starter-security' // WEB implementation 'org.springframework.boot:spring-boot-starter-web' // LOMBOK compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' // MySQL runtimeOnly 'com.mysql:mysql-connector-j' // Validation implementation 'org.springframework.boot:spring-boot-starter-validation' // JWT compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5' // DEV_TOOL developmentOnly 'org.springframework.boot:spring-boot-devtools' // TEST testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test'
1. 닉네임, 비밀번호를 request에서 전달받기
-> 새로운 LoginRequestDto를 만들어 controller와 service의 로그인 메서드에 request로 받겠습니다.
2. 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤, 하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요."라는 에러 메세지를 response에 포함하기
-> service에서 닉네임과 비밀번호를 db와 대조하는 메서드를 만들고 로그인이 실패한다면 에러객체에 메세지를 담아 리턴하겠습니다.
3. 로그인 성공 시, 로그인에 성공한 유저의 정보를 JWT를 활용하여 클라이언트에게 Cookie로 전달하기
-> jwtutill라는 jwt를 생성하는 메서드들을 모아놓은 클래스를 만들어 클라이언트에게 전달하겠습니다.
'프로젝트' 카테고리의 다른 글
최종 프로젝트 진행 리뷰 #1) 프론트를 개발하기 (0) 2024.01.19 회원가입 API를 설계&완성해보자! (0) 2023.12.14 [내배캠] 널익셉션 - 반려인 뉴스피드 프로젝트 (0) 2023.11.21