인증 데이터 흐름

Taehye.on·2023년 5월 4일
0

코드스테이츠 44기

목록 보기
69/89
post-thumbnail

D-54

  1. 클라이언트 👉 서버 : 로그인 요청 보내기

  2. 서버 👉 클라이언트 : 전달받은 아이디와 비밀번호가 회원인지 확인, 회원일 경우 응답에 쿠키와 회원 정보를 전달

  3. 클라이언트 👉 : 응답을 받아 React 상태 업데이트

  4. 클라이언트 👉 : 화면 리렌더링 후 조건부 렌더링으로 마이페이지 표시(로그아웃을 하지 않는 이상 쿠키 유지 시간만큼 자동 로그인 유지)

  5. 클라이언트 👉 서버 : 로그아웃 버튼을 눌러 로그아웃 요청 전달

  6. 서버 👉 클라이언트 : 로그아웃 요청 처리(쿠키를 삭제하고 응답을 보낸다.)

  7. 클라이언트 👉 : 응답이 돌아오면 React 상태 초기화

  8. 클라이언트 👉 : 화면 리렌더링 후 조건부 렌더링으로 로그인 페이지 표시

🔍 Session 데이터 흐름

  1. 클라이언트 👉 서버 : 로그인 요청 보내기

  2. 서버 👉 클라이언트 : 전달받은 아이디와 비밀번호가 회원인지 확인, 회원일 경우 응답에 세션과 회원 정보를 전달

  3. 클라이언트 👉 : 응답을 받아 React 상태 업데이트

  4. 클라이언트 👉 : 화면 리렌더링 후 조건부 렌더링으로 마이페이지 표시(로그아웃을 하지 않는 이상 세션 유지 시간만큼 자동 로그인 유지)

  5. 클라이언트 👉 서버 : 로그아웃 버튼을 눌러 로그아웃 요청 전달

  6. 서버 👉 클라이언트 : 로그아웃 요청 처리(세션을 삭제하고 응답을 보낸다.)

  7. 클라이언트 👉 : 응답이 돌아오면 React 상태 초기화

  8. 클라이언트 👉 : 화면 리렌더링 후 조건부 렌더링으로 로그인 페이지 표시

🔍 Token 데이터 흐름

  1. 클라이언트 👉 서버 : 사용자가 인증 정보를 담아 로그인 요청을 보냄

  2. 서버 👉 데이터베이스 : 저장된 사용자의 인증 정보를 확인

  3. 데이터베이스 👉 서버 : 인증 성공시 인증 및 권한 정보를 서버 비밀 키와 같이토큰을 생성해 암호화한다.

  4. 서버 👉 클라이언트 : 생성된 토큰 전달

  5. 클라이언트 👉 : 토큰 저장

  6. 클라이언트 👉 서버 : 서보로 리소스 요청 시 토큰을 같이 전달(토큰을 보낼 경우 Authorization 헤더를 사용하거나 쿠키로 전달 가능하다.)

  7. 서버 👉 : 전달받은 토큰을 서버의 비밀 키를 통해 검증한다. 이때 토큰이 위조되었는지, 토큰의 유효 기간이 지나지 않았는지 등을 확인할 수 있다.

  8. 서버 👉 데이터베이스 : 토큰이 유효할 경우 클라이언트의 요청에 대한 응답 데이터를 전송한다.

🔍 OAuth 데이터 흐름

  1. 사용자 👉 어플리케이션 : 사용자가 접속

  2. 어플리케이션 👉 Authorization Server : 인증 요청 전송

  3. Authorization Server 👉 : 유효한 인증 요청인지 확인 후 액세스 토큰 발급

  4. Authorization Server 👉 어플리케이션 : 액세스 토큰 전달

  5. 어플리케이션 👉 Resource Server : 발급받은 액세스 토큰을 담아 사용자의 정보를 요청

  6. Resource Server 👉 : 전달받은 액세스 토큰이 유효한 토큰인지 확인

  7. Resource Server 👉 어플리케이션 : 유효한 토큰일 경우 요청한 사용자의 정보를 전달한다.

0개의 댓글