access token(4)
-
AccessToken 재발급 프로세스
AccessToken 재발급은 앞에서 설명한 대로 만료시간을 짧게 설정하기 때문에 로그인을 자주 요청할 수 있게 된다. 이를 보완하기 위하여 AccessToken 이 만료되고, RefreshToken 이 유효하다면 사용자가 사이트를 이용하는 동안에 서버에서 자동으로 AccessToken을 재발급 함으로써 로그인 없이 사이트를 이용할 수 있도록 한다. 아래 그림은 AccessToken 재발급의 시퀀스다이어그램 입니다. JwtFilter // AccessToken 재발급인 경우 if (!isValidAccessToken && isValidRefreshToken) { // AccessToken 재발급 accessToken = reIssueAccessToken(refreshToken); // 쿠키 생성 Cook..
2021.06.28 -
로그인 테스트
앞에서 작성한 로그인 코드에 대한 테스트 결과입니다. 테스트는 Postman을 이용하여 진행합니다. 로그인 테스트 진행 전에 User권한을 가진 사용자를 생성합니다. ※ Check Point 로그인 테스트에서 아래의 4가지 사항을 확인 해야합니다. 1. AccessToken, Refresh Token 정상 생성 확인 2. userCookie, accessTokenCookie, refreshTokenCookie 정상 생성확인 3. USER 테이블에 token 컬럼 업데이트 확인 4. Redis 서버에 Refresh Token 정보 생성 확인 01. 사용자 생성 사용자 생성이 정상적으로 되었는지는 DB정보를 확인합니다. 위의 그림에서 보면 username이 roopy인 사용자가 생성된 것을 확인할 수 있습니..
2021.06.27 -
로그인 프로세스
사용자 로그인에 대한 로직을 살펴보도록 하겠습니다. 아래 시퀀스 다이어그램을 통해서 전체적인 로직을 확인 해보도록 하겠습니다. 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 -
Token Life Cycle And Cookie
예제를 시작하기 앞서 토큰의 생명주기와 쿠키에 대한 설명을 하려고 한다. 토큰은 사용자가 로그인을 하고 사이트 접속 유무에 따라서 토큰의 발급, 재발급, 만료를 관리하게 된다. 토큰을 관리하는 방식은 여러 가지가 있지만 예제에서는 쿠키를 이용하여서 토큰의 정보를 관리하게 된다. 01. Token AcessToken AccessToken은 JWT를 이용하여 발급하게 된다. 아래 그림을 보면 Token의 구조에 대해 알 수 있을 것이다. 위의 그림에서 볼 수 있는지 AccessToken에는 사용자의 데이터도 포함되어 있다. 보통은 AccessToken은 만료 시간 설정을 짜게 한다. 이유는 암호화가 되어있긴 하지만 Token을 탈취당할 수도 있기 때문에 짧게 설정한다. 대신에 다음에 설명할 RefreshTo..
2021.06.27