Jwt 14

springboot security jwt 검증필터 만들기(BasicAuthenticationFilter)

https://cordingmonster.tistory.com/193?category=1035575 springboot jwt token 발급하기 2 https://cordingmonster.tistory.com/category/Jwt/Jwt%20%ED%86%A0%ED%81%B0%EB%A7%8C%EB%93%A4%EA%B8%B0 'Jwt/Jwt 토큰만들기' 카테고리의 글 목록 cordingmonster.tistory.com 이전 글들이 조금 두서없는 거 같.. cordingmonster.tistory.com 토큰이 잘 발급되었다면 검증필터를 만들어주자 모든요청이 발생하면 BasicAuthenticationFilter 이 시큐리티 필터를 타게된다 (시큐리티를 적용중이라는 가정하에) 인증검증방식 1.로그인 사..

springboot jwt token 발급하기 2

https://cordingmonster.tistory.com/category/Jwt/Jwt%20%ED%86%A0%ED%81%B0%EB%A7%8C%EB%93%A4%EA%B8%B0 'Jwt/Jwt 토큰만들기' 카테고리의 글 목록 cordingmonster.tistory.com 이전 글들이 조금 두서없는 거 같아서 심플하게 다시 써보려고 한다 1. 디펜던시 넣기 implementation group: 'com.auth0', name: 'java-jwt', version: '3.18.2' 넣어준다 1. 토큰 만들기 1.엑세스토큰은 이메일이든 뭐든 키/밸류형식으로 넣어준다 유효기간을 타이트하게해준다 (20분정도) 2.리프레시는 아무것도 정보를넣어주지 않는다 유효기간을 길게해준다(일주일~두달정도) 변수 네이밍이 ..

springboot jwt 발급하기 1 (corsFilter)

https://cordingmonster.tistory.com/category/Jwt/Jwt%20%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C%2B%EB%B0%B1%EC%97%94%EB%93%9C%20%ED%86%B5%EC%8B%A0 'Jwt/Jwt 프론트엔드+백엔드 통신' 카테고리의 글 목록 cordingmonster.tistory.com 이전에 한번 썼던 글이지만 다시 한번 정리해 놓으려고 한다 발급 전 jwt를 사용할 때는 높은 확률로 프런트/백엔드 도메인이 분리되어있을 것이다 ex) localhost:3030, (프) localhost:8080(백) axios/ajax 등 도메인이 서로 다를 때 cors정책이 우리를 가로막게 된다 localhost/:1 Acce..

Springboot Jwt 토큰 재발급!(2) with 시큐리티 예외처리

리프레시 토큰 사용전 서버 토큰 발급 형식을 둘다 쿠키로 바꿨다 https://cordingmonster.tistory.com/119?category=1039797 Springboot Jwt +마이페이지 하기전 셋팅!(1) localStorage-> 쿠키 좀 바꿔줘야 할 부분이 있었다 크게 두부분이다 1. 액세스 토큰 -localStorage->쿠키 형식으로 변환 2. 토큰 검증 시스템 변환 -현재는 새 토큰을 발급받아도 전혀 사용 중이지 못하는 중이었다 이제 cordingmonster.tistory.com 이제 프런트에서 쿠키로 토큰을 줬을 때 유효기간 검사를 하고 지났다면 새 토큰을 전달해주자! https://cordingmonster.tistory.com/95?category=1035704 Spri..

Springboot 네이버로그인+Jwt(1) with redirect,URLSearchParams

드디어.... 드디어 알아냈다 네이버 로그인구현은 이전에 했었다 https://cordingmonster.tistory.com/84?category=1034502 Springboot 네이버로그인!(!) code받기 state만들기 소스를 정리하기 전에 좀 아쉬움이 남았다 아임 포트로 api를 성공하고 나니까 너무 짜릿해서 한 번 더 해보고 싶었는데 무얼 할까 하다가 자주 사용할 거 같은 네이버 로그인을 선택했다! 네이 cordingmonster.tistory.com 저 코드에서 인증 부분 밑에 코드 발급 기능을 추가하면 된다 service 리프레시 토큰이 db에 있나 검사하고 wtDto jwtDto=jwtService.getRefreshToken(userDto.getId()); (없다면 null이 들어간..

Springboot Jwt토큰 프론트와 통신하기!(4) with cookie,XMLHttpRequest

액세스 토큰은 =로컬 스토리지에 저장하고 리프레시 토큰은 =httponly 쿠키로 전송해 주자! jwtLoginFilter refresh라는 이름으로 내용을 담는 쿠키 생성 Cookie cookie=new Cookie("refreshToken", refreshToken); 자바스크립트에서 접근 못하게 httponly 켜주고 cookie.setHttpOnly(true); 쿠키 저장 response.addCookie(cookie); 서버에서 쿠키 받는 법 https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials Access-Control-Allow-Credentials - HTTP | MDN 응답헤더 Acce..

Springboot Jwt 프론트와 통신하기!(3) with localStorage,자바스크립트

jwt 토큰을 저장하는 방법은 크게 두 가지이다 https://velog.io/@0307kwon/JWT%EB%8A%94-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%B4%EC%95%BC%ED%95%A0%EA%B9%8C-localStorage-vs-cookie JWT는 어디에 저장해야할까? - localStorage vs cookie 이번에 지하철 미션을 만들면서 JWT를 클래스 property에 저장했었는데 리뷰어 분께 해당 부분을 피드백 받으면서 어디에 JWT를 저장하는 것이 좋을까 에 대해 고민해보게 되었다. 0. 기본 지식 JWT Js velog.io 이 글을 참고해서 장단점이 있다 쿠키와 localStorage인데 localStorage부터 하겠다..

Springboot Jwt 프론트와 통신하기!(2) with Refused to get unsafe header and CorsFilter

이제 진짜 마지막 해결 프런트-> 서버-> 프런트 서버-> 프런트만 하면 된다! 에러 내용 Refused to get unsafe header "Authorization" xhr.onload @ home.jsp:35 load (async) doDo @ home.jsp:33 onclick @ home.jsp:14 home.jsp:36 Refused to get unsafe header "refreshToken" xhr.onload @ home.jsp:36 load (async) doDo @ home.jsp:33 onclick @ home.jsp:14 하아.. 뭔지 모르겠다 열심히 또 몇 시간 구글링을 했다... https://stackoverflow.com/questions/4369987/jquery-ge..

Springboot Jwt 프론트와 통신하기!(1) with Access-Control-Allow-Origin and CorsFilter

진짜 짜증 나는 에러였다 내용 Access to XMLHttpRequest at 'http://localhost:8080/login' from origin 'http://localhost:9090' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 이 내용을 잘 이해해야한다 http://localhost:9090를 http://localhost:8080 서버에서 허용 해줘야한다 (사실 네이버 로그인을 시도하면서 발견한 오류였다 이틀 동안 내 서버가 문제인 줄 알고 끙끙거렸다 이걸로 2틀을 주말을 날렸다....) 필터를 걸자 corsConfig 내 서버가 응답..

Springboot Jwt 토큰 재발급!(1) with 리프레시토큰

이제 로그인 시 리프레시 토큰 유효기간을 체크 해서 리프레시 토큰 기간이 남았다면 로그인 시 리프레시 토큰 미발급을 진행하겠다 이유는 우리가 하루에 네이버/카카오 등 횟수를 생각하면 그때그때마다 리프레시 토큰을 db에 넣으면 엄청나 질 것이다 예 테스트 한건만 81개이다 3일 치 다 가지고 있었다면! 엄청났을 것이고 유저가 많다면! 리프레시 토큰 db가 아주 난리가 날것이다 그래서 로그인 시 기한 검사를 해주자! application 처음으로 사용해봤다 근데 저 노란 줄... 거슬리는데 작동은 잘된다 잘못 쓰고 있나 더 검사해봐야겠다! utillService timeStamp->localDateTime으로 변환 해주자 LocalDateTime timestamp2=timestamp.toLocalDateTi..