본문 바로가기

2024. 05. 14 (화) 3주차 - Daily Coding - Day15

@Breadbread22024. 5. 15. 02:03
반응형

JWT는 어떤 약어의 줄임말이며, 주로 어떤 목적으로 사용되는지

=>  JWT는 JSON Web Token의 약자로, 주로 사용자 인증과 권한 부여를 위해 사용됩니다. 토큰에는 사용자의 인증 정보가 포함되어 있으며, 서버와 클라이언트 간에 주고받을 때 이를 사용하여 사용자를 인증합니다.

 

JWT를 이용한 가입과 로그인 과정을 설명

 1. 회원 가입 과정
회원 가입 과정에서 사용자는 웹사이트에 자신의 정보(이름, 이메일, 비밀번호 등)를 제공합니다. 이 정보는 데이터베이스에 저장되며, 비밀번호는 보안을 위해 해시화하여 저장합니다.

2. 로그인 과정
로그인 과정에서 사용자는 이메일과 비밀번호를 입력하여 서버에 전송합니다. 서버는 데이터베이스에서 해당 이메일을 찾아 입력된 비밀번호와 저장된 비밀번호 해시가 일치하는지 확인합니다.

비밀번호가 일치하면, 서버는 JWT를 생성합니다. 이 토큰은 사용자의 고유 정보 (예: 사용자 ID)와 서버의 비밀키를 이용하여 만들어지며, 이렇게 만들어진 JWT는 사용자에게 전송됩니다.

3. JWT 사용
이후 사용자가 서버에 요청을 보낼 때마다, 이 JWT는 HTTP 요청의 헤더에 포함되어 서버에 전송됩니다. 서버는 이 JWT를 검증하고, 검증이 성공하면 요청을 처리합니다.

JWT는 서버에 요청을 보낼 때마다 인증 정보를 포함하여 보낼 수 있게 해주므로, 서버는 사용자의 세션을 유지할 필요가 없습니다. 이는 Stateless한 특성을 가져 서버의 부하를 줄이는데 도움이 됩니다.

즉, JWT를 사용한 회원 가입 및 로그인은 사용자의 인증과 권한 부여를 보다 안전하고 효율적으로 처리할 수 있게 해줍니다.

 

refresh token

=> 1. Refresh Token 발급: 사용자가 처음 인증에 성공했을 때, Access Token과 함께 Refresh Token도 발급해야 합니다. Refresh Token은 보통 긴 만료 시간을 가지며, Access Token을 새로 발급받는 데 사용됩니다.


2. Refresh Token 저장: 발급된 Refresh Token을 사용자와 연결시키기 위해 저장해야 합니다. 이를 위해 데이터베이스에 Refresh Token과 사용자 ID를 저장하는 테이블을 생성하고, 발급된 Refresh Token을 해당 테이블에 저장합니다.


3. Access Token 재발급 엔드포인트 생성: 클라이언트가 Access Token이 만료되었을 때, 이를 새로 발급받을 수 있는 엔드포인트를 생성해야 합니다. 클라이언트는 이 엔드포인트에 Refresh Token을 전달하고, 서버는 Refresh Token이 유효한지 확인한 후 새로운 Access Token을 발급합니다.


4. Refresh Token 검증: Access Token 재발급 요청을 받았을 때, 전달된 Refresh Token이 유효한지 확인해야 합니다. 이를 위해 데이터베이스에서 해당 Refresh Token을 찾고, 해당 Refresh Token이 만료되지 않았는지 확인합니다. 유효한 경우에만 새로운 Access Token을 발급해야 합니다.


5. 로그아웃 로직 변경: 사용자가 로그아웃 요청을 보낼 때, 발급된 Refresh Token도 함께 폐기해야 합니다. 이를 위해 로그아웃 요청을 받으면, 데이터베이스에서 해당 사용자의 Refresh Token을 삭제하거나 만료시키는 로직을 추가합니다.

 

 

 

아 진도 미치게 빠르네.. 지금 눈뜬지 24시간째.. 뭐하는건지 모르겠네 이게..

반응형
Breadbread2
@Breadbread2 :: 혼자만의 시간은 좋지만, 혼자는 싫다냐옹 (건들지 말라옹)

안녕하세요~! 저의 블로그를 방문해주셔서 감사합니다!! 좋은 정보 많이 많이 공유할게요~! 자주 놀러와주세요!

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차
표시할 목차가 없습니다.