jwt토큰 11

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입장 시 구별해주자! 쿠키도 이차원 배열로 바꿔서 넘겨주자!

Springboot Jwt+카카오로그인!(3) with 리다이렉트

이제 로그인 뒤 홈페이지로 보내주자 리다이렉트를 해줘야 한다! kakaoLoginService 리다이렉트 준비를 위해 액세스 토큰+이메일을 배열로 리턴해준다 controller 파라미터로 던 저주자! index.jsp email 파라미터 값을 찾는다 없다면 로그인/회원가입 표시 회원가입 로그인 있다면 로그인 상태 중이니 이메일 표시 토큰을 받아서 로컬 스토리지에 저장 var params = new URLSearchParams(location.search); var getType= params.get('token'); if(getType!=null){ console.log(getType); localStorage.setItem('Authorization', getType); } 어이쿠.. else 가없네 ..

Springboot Jwt+카카오 로그인!(2) with 빌더 패턴(builder)

자 이제 회원가입 처리 및 리다이렉트를 해주자! 빌더 패턴을 사용해주자 userDto 롬복을 사용해서 @Builder을 사용해주면 아주 간단하게 만들 수 있다! jwtService 기존 인증 확인 시스템에서 수정해준다 oauth로그인은 개발자만 알고 있는 비밀번호이다 오스 로그인인지 확인 상황에 맞게 비밀번호 부여 if(dto.getProvider()!=null){ pwd=oauthPwd; }else{ pwd=dto.getPwd(); } kakaoLoginService 처음 인지 확인 if(dto==null) 처음이라면 회원가입 진행 dto=userDto.builder().email(email) 아니라면 db에서 정보 추출 dto=userDao.findByEmail(email); 시큐리티 인증 부여 Au..

Springboot Jwt+휴대폰인증!(2) 인증번호 확인

버그+효율성 때문에 리팩토링 하였습니다 https://cordingmonster.tistory.com/131 Springboot 인증 시스템 리팩토링!(1) with interface 이전 글 https://cordingmonster.tistory.com/108?category=1038496 Springboot Jwt+휴대폰인증!(2) 인증번호 확인 이제 인증번호가 맞는지 안 맞는지 판별해보자 프런트 js json형태로 번호/입력 전송 let dat.. cordingmonster.tistory.com 이제 인증번호가 맞는지 안 맞는지 판별해보자 프런트 js json형태로 번호/입력 전송 let data=JSON.stringify({ "phoneNum":""+document.getElementById('p..

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 프론트와 통신하기!(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 내 서버가 응답..

Spring boot Jwt토큰 검증하기!(1) with BasicAuthenticationFilter

요청이 오면 시큐리티는 BasicAuthenticationFilter로 보내는 거 같다 왜냐면 테스트를 해봤는데 모든 페이지 이동시 이 필터가 걸려있는 쪽으로 온다 1.jwtAuthorizationFilter 만들기 헤더 검사 if(request.getHeader("Authorization")==null||!request.getHeader("Authorization").startsWith("Bearer")){ 헤더가 있다면 토큰 검사 String jwtToken=request.getHeader("Authorization"); 토큰 해제 int userid=JWT.require(Algorithm.HMAC512("kim")).build().verify(jwtToken).getClaim("id").asInt(..

Spring boot jwt토큰만들기!(2) with security

자 이제 갱신을 위한 리프레쉬 토큰을 만들어 보자 발급 절차는 똑같다 다만 토큰에 사용자 정보를 안 담고 유효시간을 엄청 길게 해 놓으면 된다! 1.service 오버 로딩 기능을 사용해서 만들어주고 회원정보 없이 만들어주고 .withClaim("id",id) 제거 유효기간은 길게 .withExpiresAt(new Date(System.currentTimeMillis()+(60000*10))) 2.db 만들기/dto 만들기 메모리 엔진을 만든다 왜냐면 그냥 엔진은 너무 오래 걸려서 토큰은 빠르게 확인돼야 하기 때문이다 메모리 엔진은 컴퓨터를 껐다키면전부 날아간다 램안에 있기 때문에 빠르지만 날아간다! https://m.blog.naver.com/PostView.naver?isHttpsRedirect=tr..