JWT(7)
-
Vue3 프로젝트 개요
앞선 Spring Boot Jwt with JPA and Redis 예제에서는 서버만 구현하였고 Postman을 이용하여 테스트를 진행하였다. 이번에는 Vue3로 화면 구현 후 테스트를 진행 하였 습니다. 이번 Vue3 프로젝트에서 다룰 내용은 아래와 같습니다. 주요 화면 로그인, 사용자 등록, 프로필 사용자 권한에 따른 페이지 이동 처리 Local Storage를 이용한 토큰 관리 Axios Interceptor 를 이용한 AccessToken 갱신 처리 주요 화면 403의 경우는 사용자 별로 권한을 가지고 있는데 관리자 권한이 없는 일반 사용자가 관리자 화면에 접근하는 경우 위의 페이지로 이동하게 된다. Vue 3 관련 사이트 https://www.youtube.com/watch?v=YrxBCBibV..
2021.12.06 -
RefreshToken 재발급 테스트
앞에서 작성한 로그인 코드에 대한 테스트 결과입니다. 테스트는 Postman을 이용하여 진행합니다. AccessToken 재발급 테스트와 마찬가지로 사용자가 사이트에서 활동 하고 있다는 가정하에 임의의 컨테츠 페이지를 호출 합니다. ※ Check Point 로그인 테스트에서 아래의 4가지 사항을 확인 해야합니다. 1. RefreshToken 재발급 확인 2. Redis 서버 재발급 Refresh Token 정보 생성 확인 01. 페이지호출 02. Redis 서버 재발급 Refresh Token 정보 생성 확인
2021.07.03 -
RefreshToken 재발급 프로세스
RefreshToken의 역할은 AccessToken이 만료되었을 때 AccessToken 재발급 역할을 하게 된다. RefreshToken의 키 정보는 쿠키, h2db, Redis Server에 저장이 된다. 아래 그림은 RefreshToken 재발급 프로세스 이다. JwtFilter // RefreshToken 재발급인 경우 if (isValidAccessToken && !isValidRefreshToken) { // RefreshToken 재발급 refreshToken = reIssueRefreshToken(accessToken); // RefreshToken 쿠키 생성 CookieUtil refreshTokenCookieUtil = new CookieUtil(); httpServletRespons..
2021.07.02 -
AccessToken 재발급 프로세스
AccessToken 재발급은 앞에서 설명한 대로 만료시간을 짧게 설정하기 때문에 로그인을 자주 요청할 수 있게 된다. 이를 보완하기 위하여 AccessToken 이 만료되고, RefreshToken 이 유효하다면 사용자가 사이트를 이용하는 동안에 서버에서 자동으로 AccessToken을 재발급 함으로써 로그인 없이 사이트를 이용할 수 있도록 한다. 아래 그림은 AccessToken 재발급의 시퀀스다이어그램 입니다. JwtFilter // AccessToken 재발급인 경우 if (!isValidAccessToken && isValidRefreshToken) { // AccessToken 재발급 accessToken = reIssueAccessToken(refreshToken); // 쿠키 생성 Cook..
2021.06.28 -
로그인 프로세스
사용자 로그인에 대한 로직을 살펴보도록 하겠습니다. 아래 시퀀스 다이어그램을 통해서 전체적인 로직을 확인 해보도록 하겠습니다. JwtFilter 로그인시 발급된 토큰 및 쿠키 정보가 없기 때문에 로직 수행없이 LoginController 의 POST /signin 을 수행하게 됩니다. LoginController.signin package com.roopy.controller; import com.fasterxml.jackson.databind.ObjectMapper; import com.roopy.crypto.AES256Cipher; import com.roopy.jwt.JwtFilter; import com.roopy.security.jwt.payload.request.LoginRequest; imp..
2021.06.27 -
프로젝트 소개 및 설정
프로젝트 설정은 메이븐 모듈로 api-server, auth-server로 생성합니다. api-server는 쇼핑몰로 예를 들면 쇼핑몰 구현을 위한 API 연동을 위한 프로젝트라고 생가하면 됩니다. api-server에서는 Token의 발급, 재발급, 폐기 기능을 구현하지 않습니다. auth-server는 사용자 등록, 토큰의 발급, 재발급, 토큰 폐기를 관리합니다. 위와 같이 나눈 이유는 보안적인 측면과 MSA 서비스 구현시 기능의 중복을 피할 수 있기 때문입니다. 아래 그림은 프로젝트 구조입니다. 프로젝트 설정 완료 후 auth-server 실행 후 테이블 생성 및 데이터 확인을 합니다. 테이블은 Entity Class 기반으로 자동 생성되게 되어 있습니다. H2DB 접속 브라우저에서 http://l..
2021.06.27