분류 전체보기 269

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..

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..

Springboot Jwt 토큰만들기!(1) with securiy

새 토이 프로젝트를 만들기 전 이전까지는 다른 인증 시스템을 만들고 싶었다 그러던 중 jwt 토큰을 발견했었고 너무 멋있었다 다중 서버+리프레쉬 토큰 db저장 우와... 무조건 해보고 싶었다 그래서 3일 동안 시도했고 성공했다! 시작해 보자! 이분의 강의를 보고 도전해봤다! https://www.youtube.com/watch?v=cv6syIv-8eo&list=PL93mKxaRDidERCyMaobSLkvSPzYtIk0Ah&index=12 1. 의존성 주입 implementation group: 'com.auth0', name: 'java-jwt', version: '3.18.1' https://mvnrepository.com/artifact/com.auth0/java-jwt/3.18.1 참 유용하고 좋은..

kim's cafe 마치며

구현 기능 USER 회원가입 로그인(구글/카카오/네이버) 마이페이지 비밀번호변경 전화번호변경 이메일 인증 전화인증 비밀번호 찾기 회원 탈퇴 RESERVATION 당일 예약 시스템 아임 포트를 이용한 결제 시스템 (아임 포트 api호출) 예약 내역 페이지 예약 변경/취소가능 예약 히스토리 구현 예약 내역 이메일/문자전송 BOARD 글쓰기 글 검색 글 수정 글 삭제 조회수 댓글 쓰기 댓글 삭제 댓글 수정 답글을 제외한 목표 기능들을 얼추 구현해냈다 물론 막바지 결제 시스템을 추가하면서 코드도 지저분해지고 멘털도 많이 나갔지만 제대로 작동할 수는 있게 해 놨다! 첫 번째 스프링 부트 토이 프로젝트였다 정말 재밌었고 정말 힘들었다 특히 첫 api호출은 정말 기분이.... 너무 좋았다 막연히 도대체 api는 뭘까..

Springboot 당일 예약시스템 만들기!(4) with LocalDateTime

+추가 20210821 당일이 아닌 더 업그레이드 된 예약시스템은 여기있습니다 https://cordingmonster.tistory.com/138 Springboot 예약시스템 만들기!(1) 연/월/일/요일 뿌리기! 이전에 kimscafe에서는 '당일' 예약만 가능한 시스템이었다 이번엔 언제든 가능한 예약시스템을 사용해보자! 시나리오 자리 선택->년/월/날짜 표시-> 날짜 선택-> 시간표시-> 예약 프런트 서버 html cordingmonster.tistory.com 마치기 전에 큰 버그 두 개가 있다 1.oauth 로그인 후 페이지 유실 2. 예약시간 불러오기 시스템에서 이전날 예약시간에 영향을 받음 2번을 고쳐보자! 자 현재 시스템은 서버에서 '시간'으로만 비교를 해서 예약 가능 시간을 보내준다 예..

Springboot 예약변경 시스템!(1) with 아임포트

마지막이다 답글은 다음 kimsshop을 만들면서 할 생각이다 예약 변경 기능을 만들건대 예약/취소 두 개를 합치면 된다 순서는 수정 예약이 반영된 후 예약이 끝나면 이전 예약을 환불 처리한다 기존 만들어놓은 함수를 이용하면 된다 restcontroller 이메일 검사를 한다 if(userservice.getEmailCheck(email) 전화인증 검사를 한다 if(userservice.getPhoneCheck(email) 좌석 선택 시 session에 담아 놓았던 좌석 이름을 가져온다 seatInforVo seatInforVo=(seatInforVo)httpSession.getAttribute("seat"); 결제를 검증한다 iamportservice.confrimBuyerInfor(imp_uid,re..