본문 바로가기

분류 전체보기47

react에서 axios interceptor를 사용해서 header에 token 삽입하기 기존에는 JWT 인증을 위하여 accessToken을 request header에 직접 삽입해줘야 했다. 작업이 반복적이라 프론트의 작업 편의성을 위해 axios interceptor를 통해서 해결하기로 했다. axios 요청을 서버에 보내기 전에 intercept하고 cookie에서 accessToken을 추출하고 이것을 reques header에 담아 요청을 보낸다. 기존에 import axios from 'axiou'를 사용하던 부분을 모두 import axiosInstacne from '위 파일 경로' 로 해주면 사용 가능해진다. 2023. 8. 6.
JWT에서 claim과 name을 추출하는 방법 (소셜로그인을 활용한 로그인 구현) getName()을 통한 name 추출 방법 saveAuthentication에서 username을 지정해주는 것을 볼 수 있다. 위에서 지정한 username을 SecurityContextHolder.getContext().getAuthentication().getName() 을 통해서 가져오는 것을 알 수 있다. claim에서 값 가져오기 accessToken을 생성할 때 withClaim을 통해서 claim을 추가할 수 있다. 필요한 것은 넣어주자. 위 함수를 통해서 accessToken에서 claim을 추출한다. 그리고 claim에서 원하는 데이터를 뽑아서 사용하면 된다. 2023. 8. 6.
JWT 및 OAuth2 과정 (소셜로그인을 활용한 로그인 구현) https://ksh-coding.tistory.com/59 Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (3) - JWT 관련 클래 이전에 JWT 정의를 살펴봤다면, 이번에는 JWT 관련 클래스를 직접 생성하여 구현해보려고 합니다! 들어가기 전 JWT 패키지 구조는 다음과 같습니다. JWT 서비스를 생성하기 위해 다음과 같은 오픈 ksh-coding.tistory.com 위는 OAuth2 소셜 로그인 동작 과정이다. 본 프로젝트에서는 카카오 소셜 로그인을 도입했다. 카카오에서 사용자 정보를 받아와서 db에 저장하는 데 성공했다. OAuth2를 이용해서 로그인을 발급받았으니 서버는 JWT 토큰을 생성해서 client에 보.. 2023. 8. 6.
컨벤션 Commit 메시지 컨벤션 규칙 메시지는 한글로 작성 제목은 명사로 끝내기 ex) 회원 가입 구현함(X) → 회원 가입 구현 완료(O) 마침표 사용하지 않기 제목과 본문은 빈 행으로 구분하기 제목의 타입은 소문자로 작성 본문의 내용은 어떻게 보다는 ‘**무엇과 왜’**에 중점 Gitmoji 사용하기(Gitmoji 사용 후 한 칸 띄우기) Gitmoji npm 설치 명령어 npm i -g gitmoji-cli Gitmoji 사용하기 구조 :gitmoji: 타입: 제목 본문 // 예시 ✨ feat: 회원가입 기능 구현 유효성 검사 로직 추가 아이디 중복확인 로직 추가 Gitmoji 및 타입 설명 Icon 코드 타입 설명 🎉 :tada: init 프로젝트 시작 ✨ :sparkles: feat 기능 추가/수정 .. 2023. 7. 26.
JWT 구현(1) (소셜로그인을 활용한 로그인 구현) https://ksh-coding.tistory.com/59 Spring Security + JWT를 이용한 자체 Login & OAuth2 Login(구글, 네이버, 카카오) API 구현 (3) - JWT 관련 클래 이전에 JWT 정의를 살펴봤다면, 이번에는 JWT 관련 클래스를 직접 생성하여 구현해보려고 합니다! 들어가기 전 JWT 패키지 구조는 다음과 같습니다. JWT 서비스를 생성하기 위해 다음과 같은 오픈 ksh-coding.tistory.com 위 tistory 블로그를 참고해서 jwt와 OAuth2를 구현할 예정이다. 우리 프로젝트는 일반 로그인은 지원하지 않을 예정이기 때문에 일반 로그인 부분을 덜어낼 필요가 있다. 그리고 isPresentOrElse 2023. 7. 26.
프로젝트 환경 설정 Intellij IDEA 2023.1.3 인코딩 설정 https://www.lesstif.com/java/intellij-file-console-encoding-121012310.html#:~:text=1. Settings → Editor → Java JDK 1.8.0_192 Java 8이 LTS중 가장 긴 지원기간(~2030)을 가짐 SpringBoot 2.7.14 Swagger 2.9.2 MySQL 8.0.33 설치가이드 ( ID: root, PW: root ) MySQL 다운로드 및 설치하기(MySQL Community 8.0) (hanbit.co.kr) Build 툴 Gradle - kotlin Spring Boot Dependency 설정 Spring Boot DevTools : 편하게 개발에 .. 2023. 7. 25.