분류 전체보기

학습을 하던중 암호화 되어있는 jwt토큰을 헤더에 노출하게 배웠는데, 이건 아무래도 위험하다고 생각되어 알아보던 중, ( 어세스토큰 ? 리프레시 토큰 ? ) 어세스 토큰을 빠르게 만료 시키고, 리프레쉬토큰으로 만료된 어세스토큰을 체크해서, 서버 디비에 저장되어있는 리프레쉬토큰과 비교 후 , 재발급 해주는 과정을 거치면 된다. 그러나 리프레쉬토큰 마저 탈취, 조작 당하게 되면 엄청나게 큰일 !! 그래서 리프레쉬 토큰의 보안은 철저하게 해주어야 한다고 판단되어 쿠키에 저장 하는 방법을 선택 했다. (쿠키는 여러가지 보안 옵션을 할 수 있기 때문에) 이것을 알아보려면 여기로 ... 우선 어세스 토큰과 리프레쉬 토큰을 만들어주자 ! 만드는법은 jwt 토큰을 이용하여 기간이 짧은 토큰1(어세스토큰) - [사용자의..
쿠키란 ? 쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹사이트에 널리 사용되고 있다. 쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일입니다. 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한다. 쿠키를 사용하는 이유는 ? 필수적인 쿠키: 필수적인 쿠키는 페이지 탐색, 웹사이트의 보안영역 접속, 그리고 검색을 포함한 웹사이트의 기본적인 기능의 활성화를 목적으로 사용되고 있다. 본 웹사이트는 필수적인 쿠키 없이 최적화된 기능 수행이 불가하므로 본 쿠키는 이용자의 별도 동의 없이 활성화 되고 있다. 기능 쿠키: 기능 쿠키는 웹사이트가 접속자의 지역 및 언어 등 웹사이트의 행태 및 외관에 ..
Access Token과 Refresh Token 어세스 토큰 (AccessToken)? 어세스 토큰은 접근/인증에 관여하는 토큰 리프레시 토큰 (Refresh Token)? 리프레시 토큰은 재발급에 관여하는 토큰 JWT는 발급한 후, 삭제가 불가능하기 때문에 만약의 경우에 탈취를 당했을 경우, 삭제가 불가능 하기 때문에 접근에 관여하는 토큰은 유효시간을 짧게 해야한다. 하지만 자동 로그인 혹은 로그인 유지를 위해서는 유효시간이 긴 토큰이 필요하다. 이때 사용되는 것이 Refresh Token 이다. Access Token의 재발급 방법 그럼 어떻게 재발급에 관여하는지 알아보자. 보통 Refresh Token은 로그인 성공시 발급되며 저장소에 저장하여 관리된다. 그리고 사용자가 로그아웃을 하면 저장소에서..
이번 프로젝트를 하다가 게시판 - 댓글을 왜 연관관계를 하면안되는지 이것보다 더 연관관계가 깊은게 뭐가 있을까 하면서 간접 참조라는 개념을 알게되었다 게시판은 댓글이 없어도 된다 하지만 댓글은 게시판이 있어야 한다. 하지만 이것 외에 둘의 관계는 없다. 댓글이 게시판 생성 수정 삭제에 관여할 것은 아니지 않은가 이렇다면 간접 참조를 사용하여야 한다. 도메인 주도 설계를 공부하다 보면 아래의 예시 이미지 처럼 도메인을 기준으로에그리거트 단위로 그룹핑을 하게 된다. 에그리거트 : 관련된 도메인의 집합 DDD 에서는 에그리거트간에 참조 방식은 직접 참조 방식 보다 간접 참조하는 방식을 권장한다. 위의 이미지는 회원과 빵집의 관계 (회원이 빵집을 등록하는 관계) 를 나타낸 것 이다. 1. 직접 참조 JPA 에..
@PathVariable 이란? REST API에서 URI에 사용되는 변수이다. 예를 들면, 아래 URI에서 밑줄 친 부분이 @PathVariable로 처리해줄 수 있는 부분이다. localhost:8080/api/user/1234 music.bugs.co.kr/album/4062464 2개가 필요할 경우 따로 따로 선언 해주면 된다. @PutMapping("/posts/{postId}/comments/{commentId}") public void editComment(@PathVariable Long postId,@PathVariable Long commentId, @RequestBody CommentRequestDto commentrequestDto) { commentService.editCommen..
로그인시 Jwt Token을 발급해준다.(편의상 헤더에 발급) Jwt 특성상 한번 발금된 토큰은 만료시켜줄 수 없다. Jwt의 특성을 잘 나타내준 블로그 https://sound-story.tistory.com/21 [JWT] JWT는 왜 쓸까? 이게 최선일까? 로그인 후에 Access Token을 발급하여 쿠키에 저장하는 것까지 구현해 보았습니다. https://sound-story.tistory.com/19 [NestJS] Auth Token을 쿠키에 저장하기 email, password를 통해 로그인하여 access token을 생성하 sound-story.tistory.com Reissu Jwt 를 쿠키에 저장해 두었기 때문에 들어올때 쿠키중에 refreshtoken의 쿠키가 있는지 확인하고 ac..
테이블 외래키 하나로 양쪽 조인가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 양방향은 단방향을 서로 보는것이 양방향이다. 테이블은 외래 키(기준이 되는 키) 하나로 두 테이블이 연관관계를 맺음 연관관계의 주인 : 이 그림에서 연관관계의 주인은 커스터머 이다 (mappedby = "customer") 외래키를 관리하는 참조 = 기준이된 키를 가지고 있는 객체가 주인 !! 주인의 반대편 = 외래키에 영향을 주지 않음 (단순 조회만 가능) ex. 주문 테이블에서 사람에게 영향을 줄순 없다. 1. 두가지 테이블을 연결하는데 기준이 필요하다. (manytoone / joincolumn) *다대일은 연관관계 주인이 되어야 한다 2..
@Id 직접할당 [문자열 이나 다른 타입도 사용 가능하지만 보통 (시퀀스넘버나 , Auto Increment) 자동할당 숫자를 넣어준다 @GeneratedValue 자동할당 [ strategy = GenerationType.AUTO - 아래 세개중에 하나 자동선택 GenerationType.IDENTITY - 기본 키 생성을 데이터베이스에 위임 주로 Mysql ,PostgreSQL,SQL,SERVER,DB2 사용 Mysql = Auto Increment , GenerationType.SEQUENCE - 주로 오라클 에서 사용 GenerationType.TABLE - 잘 사용하지 않는다. 키 전용 테이블을 만들어 데이터베이스 시퀀스를 흉내내는 전략 장점 : 모든 데이터베이스에 적용 가능 < 아이덴티티와 시..
imSoo
'분류 전체보기' 카테고리의 글 목록 (18 Page)