전체 글 152

springSecruty+JWT+react+Oauth2

여기는 드는 의문 : 나는 로그아웃 했는데 db에 남아 있는 refreshToken 때문에 멋대로 accessToken이 발급 되면 어쩌지... -> 일단 setInterval(accessToken의 주기적 재발급)의 경우 로그아웃하면 멈추도록 했음, 기존의 refreshToken의 경우 Oauth2로그인 시 해당 username의 refreshToken은 삭제하도록 되어 있음, 그래도 logout시 db의 refreshToken을 삭제하면 refreshToken이 탈취당하더라도 내 정보를 좀 더 지킬 수 있을 것 같다는 생각이 들어 구현해볼 예정

springSecruty+JWT+react+Oauth2 (react)

: 임시 로그인 페이지 import { Badge } from "react-bootstrap"; import React from "react"; import { useNavigate } from "react-router-dom"; const Login = () => { const navigate = useNavigate(); const handleLogin = () => { window.location.href = `http://localhost:8080/oauth2/authorization/google`; }; const handleLogout = () => { //accessToken과 refreshToken을 지움 localStorage.removeItem("Tnut's accessToken"); ..

springSecurity+react+Oauth2(google)+jwt (Spring)

여기저기서 참고한 자료들을 가지고 혼자서 구현해 본 것이라 예외처리라던지 다소 불안정한 요소가 많지만 나중에 다듬을 때 참고하기 위해서 작성, 글 순서는 대략적인 구현 순서임, 일반 로그인은 구현 안함 오직 Oauth2로만 로그인 하도록 되어 있음 참고한 자료들: https://docs.spring.io/spring-security/reference/servlet/oauth2/resource-server/bearer-tokens.html OAuth 2.0 Bearer Tokens :: Spring Security By default, Resource Server looks for a bearer token in the Authorization header. This, however, can be cust..

로그 아웃 고민

방법 1: logout을 하면 AccessToken에 임의의 값을 넣어준다 -> 매우 간편 -> 리액트에서 조건부 렌더링을 할 때 어떻게 해야할까... 방법 2: logout을 하면 localStorage를 비운다. -> 조건부 렌더링이 비교적 간단함 -> db에 남아 있는 refreshToken은 어떻게 되는 거지? 선택 방법 2: 방법 1은 후에 login된 사용자로 조건부 rendering을 할 때 localstorage의 accessToken값의 유무로 하기 어렵다고 판단, 방법 2의 db의 refreshToken의 경우 로그아웃시 요청으로 지울 예정

refresh 토큰 후처리 고민

accessToken이 만료되어 refresh 토큰을 검증하는 단계로 옴 refresh 토큰 -refresh 토큰이 만료되었다면 -> 로그인 재시도 -refresh 토큰이 유효하다면 ->ⅰ) 요청에 응답 후 access토큰 재발급 ->ⅱ) access 토큰 재발급 후 해당 access 토큰 으로 재요청 고민에 대한 답: refresh 토큰은 요청에 대한 응답을 위한 토큰이 아님 access토큰을 재발급해주기 위한 토큰으로 ii ) 로 선택