inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

HTTP 상태코드(status code) ★★★

JWT 토큰 관련 질문입니다!

462

돈우

작성한 질문수 15

1

안녕하세요!! JWT 토큰 관련해서 강의듣다가 궁금한점이 생겨서 질문드립니다 !

  1. 그럼 JWT 토큰 구조에서 signature가 인코딩된 Header+인코딩된 Payload+ 비밀키를 헤더에 명시된 알고리즘으로 서명한값이라고 하셨느데, 그럼 서버에서는 (인코딩된 Header+인코딩된 Payload) 값을 암호화하고 뒤에 붙은 signature랑 비교해서 같으면 허용된 유저로 받아 들이는건가요??

  2. access Token / refresh Token 방식에서 refresh Token의 탈취는 생각안하는 건가요? 그냥 access Token만 set-cookie로 하는 방식이랑 비교해서 저게 왜 더 안전한지 잘 안와닿습니다!

  3. access Token / refresh Token 방식에서 로그인 성공한 클라이언트가 서버에 추가적인 다른 요청을 보낼 때, access Token을 Header에 직접 담아야하고 refresh Token은 계속해서 cookie에 자동으로 담겨서 날라가는건가요??

  4. access Token / refresh Token 방식에서 요청을 했을 때, 만약 access token이 만료된 토큰이면 refresh token을 통해 access token을 받은 다음 Header에 담아서 요청을 하는거면 클라이언트 입장에서 2번의 요청을 보내야하는건가요?? 그럼 예를들어 유저는 버튼 2번을 눌러야하는건가요??

  5. access Token / refresh Token 방식에서 로그아웃할 때는 어떤식으로 처리를 해줘야하나요?? Spring + react 환경일 때, Spring 서버측에서 access Token / refresh Token 둘 다 없애는 건가요? 아니면 react에서 비워 버리는건가요?? 아니면 refresh Token만 쿠키에서 없애고 access Token은 그냥 만료기한 지나도록 나두는 건가요??

  6. 마지막으로 이전에 리액트랑 Spring으로 프로젝트를 한 경험이 있는데, 거기서 클라이언트가 리액트에 접속해서 로그인해서 refresh Token을 cookie에 담고 access token은 로컬 스토리지에 저장하고 있었는데, 브라우저 새로고침을 하니깐 refresh Token이랑 access Token이 사라졌던걸로 기억을 하고 있습니다. 원래 쿠키에 저장하면 새로고침해도 남아 있어야하는거 아닌가요?? 아니면 리액트랑 Spring 배포한 환경의 도메인이 달라서 크롬의 쿠키 정책상 때문인지.. 궁금합니다 !

적다보니 질문이 엄청 많아졌네요ㅎㅎ.. 요즘 이 강의로 cs공부를 하고 있는데 늘 감사합니다!!

면접 운영체제 기술면접

답변 1

0

큰돌

안녕하세요 돈우님 ㅎㅎ

 

  1. 그럼 JWT 토큰 구조에서 signature가 인코딩된 Header+인코딩된 Payload+ 비밀키를 헤더에 명시된 알고리즘으로 서명한값이라고 하셨느데, 그럼 서버에서는 (인코딩된 Header+인코딩된 Payload) 값을 암호화하고 뒤에 붙은 signature랑 비교해서 같으면 허용된 유저로 받아 들이는건가요??

>> 서명뿐만 아니라 만들어진 토큰을 기반으로 유저의 허용 비허용을 판단합니다.

 

  1. access Token / refresh Token 방식에서 refresh Token의 탈취는 생각안하는 건가요? 그냥 access Token만 set-cookie로 하는 방식이랑 비교해서 저게 왜 더 안전한지 잘 안와닿습니다!

>> 아니요. refresh 토큰 또한 탈취가 가능합니다. 다만 더 안전하기 위해서입니다.

먼저 다시 정의를 살펴볼게요.

refresh토큰은 access토큰이 만료되었을 때 다시 access 토큰을 얻기 위해 사용되는 토큰입니다. 이를 통해 access토큰이 만료됬을 때마다 인증에 관한 비용이 줄어들게 됩니다. 

 

refresh 토큰 >> access 토큰

이렇게 되는 것인데요. 방어막을 한개 쳤다라고 생각하시면 됩니다.

refresh 토큰 을 통해서 만료기한이 짧은 access 토큰 을 생성해서 만약 access토큰이 탈취당하더라고 해킹을 막을 수 있게 됩니다.

 

  1. access Token / refresh Token 방식에서 로그인 성공한 클라이언트가 서버에 추가적인 다른 요청을 보낼 때, access Token을 Header에 직접 담아야하고 refresh Token은 계속해서 cookie에 자동으로 담겨서 날라가는건가요??

>> 쿠키는 헤더입니다. 둘 다 헤더에 담겨서 요청이 들어갑니다.

CS지식의 정석 중 이 강의 참고 부탁드립니다.


웹브라우저의 캐시 #5. 쿠키(Cookie)

 

  1. access Token / refresh Token 방식에서 요청을 했을 때, 만약 access token이 만료된 토큰이면 refresh token을 통해 access token을 받은 다음 Header에 담아서 요청을 하는거면 클라이언트 입장에서 2번의 요청을 보내야하는건가요?? 그럼 예를들어 유저는 버튼 2번을 눌러야하는건가요??

>>

access 토큰 만료가 됨 > refresh 토큰 기반 > access토큰 요청

한번밖에 요청을 하지 않습니다.

 

  1. access Token / refresh Token 방식에서 로그아웃할 때는 어떤식으로 처리를 해줘야하나요?? Spring + react 환경일 때, Spring 서버측에서 access Token / refresh Token 둘 다 없애는 건가요? 아니면 react에서 비워 버리는건가요?? 아니면 refresh Token만 쿠키에서 없애고 access Token은 그냥 만료기한 지나도록 나두는 건가요??

>> 서버측에서 둘다 없앱니다.

 

  1. 마지막으로 이전에 리액트랑 Spring으로 프로젝트를 한 경험이 있는데, 거기서 클라이언트가 리액트에 접속해서 로그인해서 refresh Token을 cookie에 담고 access token은 로컬 스토리지에 저장하고 있었는데, 브라우저 새로고침을 하니깐 refresh Token이랑 access Token이 사라졌던걸로 기억을 하고 있습니다. 원래 쿠키에 저장하면 새로고침해도 남아 있어야하는거 아닌가요?? 아니면 리액트랑 Spring 배포한 환경의 도메인이 달라서 크롬의 쿠키 정책상 때문인지.. 궁금합니다 !

>> 쿠키에 저장하면 새로고침하면 남아있는게 정상입니다. 서버나 클라이언트에서 어떤 로직이 있는 것 같습니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

돈우

감사합니당!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

53

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

91

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

103

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

78

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

201

1

회선과 대역폭의 관계

0

63

2

44강 질문

0

95

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

67

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

108

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

72

2