Etc

본인확인(본인인증)에 대한 이야기

본인확인 방법의 종류

JWT의 단점과 보완방법(Refresh 토큰)

JWT토큰은 치명적인 단점이 있다. 세션과 다르게 만료가 되지 않기 때문에 한번 털리면 토큰이 만료되기 전까지 계속 털려야한다. 이러한 단점을 보완하기위해 보편적으로 jwt토큰의 만료기간을 5분정도로 짧은 access토큰과 refresh 토큰을 같이 쓴다. access 토큰은 일반적인 통신을 할 때 항상 헤더에 포함되어야하는 토큰이다. access 토큰의 만료기간을 짧게 잡으면, 토큰이 털리더라도 짧은 시간의 로그인만 허용하므로 단점이 어느 정도 보완된다. 그러면 5분마다 사용자가 로그인을 해야하는가? 당연히 그럴 수는 없기에 이때 등장하는 게 refresh 토큰이다. 통상적인 통신을 위해 쓰이는 access 토큰이 만료가 되면 이 때 상대적으로 만료제한기간이 긴 refresh토큰을 이용하여 새로운 access 토큰을 발행한다. 이러면 유저입장에서는 refresh 토큰의 유효기간 동안은 아무 문제 없이 편리하게 서비스를 이용하면서, JWT토큰의 단점을 어느정도 보완할 수 있다.

HTTP 통신이 뭘까?

우리는 흔히 HTTP라는 글자를 많이본다. 비개발자입장에서도 주소를 입력할 때마다 보는 것이고, 개발자 입장에서도 HTTP라는 글자는 너무 많이본다. 개발자 입장에서 조금만 더 보자면, 블루투스나 적외선 같은 근거리 통신이 아닌, 서버 등과 같이 거리에 제약이 있으면 안되는 통신을 할 때 보면 항상 HTTP를 이용하고, HTTP 내에서도 GET, POST 등의 여러가지 방법을 나누어 처리하기도 하며, 헤더라는 것에 뭔가 인증키 같은 것을 넣기도 한다. 요즘은 개발 도구들이 비교적 쉽게 되어있어서 HTTP 통신이라는 것이 정확히 뭔지 몰라도 간단한 사이트 하나 정도는 만들 수 있기에, HTTP라는 것이 무엇인지에 대한 깊은 궁금증이 쉽게 유발되지 않는 것 같다(내 이야기다….).

REST API

REST API 설계 기본 규칙