JWT 30

Springboot jwt로그인 4(인증필터)

1.jwt서비스에 토큰 오픈 코드 작성 public String getValue(String jwtToken){ try { // JWT 검증을 위한 알고리즘 설정 Algorithm algorithm = Algorithm.HMAC512(jwtSecret); // JWT 검증기 생성 JWTVerifier verifier = JWT.require(algorithm).build(); return verifier.verify(jwtToken).getSubject(); } catch (Exception e) { // 토큰이 유효하지 않거나 디코딩에 실패한 경우 e.printStackTrace(); log.error("토큰이 유요하지 않습니다"); return null; } } 2.인증필터 작성 @Override p..

카테고리 없음 2024.01.13

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 로그인 리팩토링! with ResponseCookie

access/refresh토큰을 쿠키로 주고 있었다 프런트가 http->https가 된 이후로 크롬에서 테스트를 안 해봤는데 우연히 들어갔다가 samesite이슈에 걸려서 쿠키를 다시 발급하게 됐다 cookie->ResponseCookie로 변경하였다 cookieService httponly옵션은 없으니 수기로 작성해주자! 추가 httponly옵션 있음 테스트 이슈가 사라지고 잘 로그인된다! (Csrf토큰은 그냥 마음대로 만든곳이니 무시해주세요)

Springboot Jwt+마이페이지!(1) with 정보 표시하기

마이페이지를 만들어 보자 프런트 서버 html 오스 로그인 사용 자시 비밀번호변경 링크를 표시하지 않는다 비밀번호 변경 controller userService json->dto 만들어 주는 함수이다 백엔드 서버 userService 비밀번호는 주면 안 되니 null로 해서 보내주자 restcontroller 테스트 일반 로그인 소셜 로그인 구현할게 많아졌다 주소변경부터 해보자!

Springboot Jwt+로그아웃! with 쿠키 지워주기

이제 로그아웃을 구현해 보자 프런트는 쿠키를 비워주고 백엔드는 db에서 삭제해주자 프런트 서버 js controller jwtService 자주 사용할 거 같아서 토큰 getter를 하나 만들었다 userService 서버에 db 토큰 삭제 요청 jwtService.getTOServer(request, response,token, refreshToken, url); 프런트에서 들고 있는 쿠키 null값으로 값 변경 cookieService.cookieFactory(response, cookiesNames, cookiesValues); cookieService 백엔드 서버 restcontroller userService jwtService 이전에 만들었던 함수를 조금 바꿨다 존재하지 않는 토큰이 와도 진행..

Springboot Jwt+로그인!(2) with 로그인 완료

자 이제 로그인 완료 처리를 해줄 건데 지금은 약식으로 파라미터로 던져줘서 url에 그대로 노출이 되었다 이제 쿠키를 이용해 정보를 얻어와서 넣어주자 프런트 js 로그인 성공 뒤 링크를 index로 바꿔준다 location.href='index'; controller 이메일을 얻어오는 함수이다 userService.getEmail(request, response, token, refreshToken) jwtService 쿠키 가져오기 String jwtToken=cookie.getValue(); String refreshToken=cookie2.getValue(); 서버와 통신 시도 JSONObject jsonObject=callApiService.callApi(jwtToken,refreshToken, ..

Springboot Jwt +마이페이지 하기전 셋팅!(1) localStorage-> 쿠키

좀 바꿔줘야 할 부분이 있었다 크게 두부분이다 1. 액세스 토큰 -localStorage->쿠키 형식으로 변환 2. 토큰 검증 시스템 변환 -현재는 새 토큰을 발급받아도 전혀 사용 중이지 못하는 중이었다 이제 액세스 토큰이 기간이 끝나면 새 액세스 토큰 발급->다시 요청으로 만들어보자! 백엔드 cookieService jwtLoginFilter kakaoLoginService naverLoginService 로그인 시 이전 -액세스-> 로컬 스토리지 리프레시-> 쿠키 현재 모두->쿠키 테스트 모두 로그인 시 쿠키로 받는다 링크를 보면 email=nova1492@naver.com에서 파라미터를 받는데 역시 id값을 쿠키로 줘서 index입장 시 구별해주자! 쿠키도 이차원 배열로 바꿔서 넘겨주자!