Authentication Token

2021. 1. 23. 21:25·BootCamp_Codestates/Sprint Review

TokeFunctions

generateAccessToken: payload 와 AccessSecret, 만료일을 설정하여 AccessToken 을 만든다.
generateRefreshToken: payload 와 RefreshSecret, 만료일을 설정하여 AccessToken 을 만든다.
sendRefreshToken: res 와 refreshToken 을 받아 쿠키에 refreshToken 을 담아 user에게 보낸다.
sendAccessToken: res 와 accessToken 을 받아 json 객체에 accessToken을 담아 user 에게 보낸다.
resendAccessToken: accessToken 과 userinfo 를 user에게 보낸다.
isAuthorized: req.headers 에 accessToken 이 있는지 확인하고 있다면 이를 해독하여 그 결과 데이터를 return 한다.
checkRefreshToken: refreshToken 을 해독한 결과 값을 return 한다.


1. 유저의 로그인 요청

로그인 요청시, 존재하는 유저이면 유저정보를 이용하여 accesstoken 과 refreshtoken 을 만든다.
그 후에 accesstoken은 body 에 담아서 보내고, refreshtoken은 쿠키에 담아서 보낸다.

결과


쿠키에 refreshToken(value) 가 담겨 있는 것을 볼 수 있다.

데이터에는 accessToken 이 담겨 있는 것을 볼 수 있다.


2. 유저의 유저 정보 요청

유저가 아래와 같이 authorization header 에 (Bearer + access 토큰) 을 담아서 유저 데이터를 요청하면,

서버는 authorization header 의 access 토큰이 유효한지 판단하고 이를 해독한 내용 즉, userInfo(access token 생성시 payload 에 담은 내용) 의 userId 를 이용하여 데이터를 조회한다. 데이터가 있으면 이를 보내준다.

결과


authorization 에 accesstoken 이, cookie 에 refreshtoken 이 담긴 것을 확인할 수 있다.


3. 유저의 accesstoken 재발급 요청

유저가 refreshtoken 을 요청시(accesstoken 재발급 요청), cookies 에 refreshtoken 이 존재하고 해당 토큰을 해독한 값(유저인포)이 유효하다면 이를 이용하여 새로운 access token을 만들고 access token 과 유저 인포 데이터를 유저에게 보낸다.

결과

'BootCamp_Codestates > Sprint Review' 카테고리의 다른 글

Authentication Session  (0) 2021.01.23
Authentication Cookie  (0) 2021.01.23
IM - data-structure  (0) 2020.12.18
'BootCamp_Codestates/Sprint Review' 카테고리의 다른 글
  • Authentication Session
  • Authentication Cookie
  • IM - data-structure
JTB
JTB
웹/앱 개발 정보를 공유하고 있습니다.
  • JTB
    JTechBlog
    JTB
  • 전체
    오늘
    어제
    • All About Programming;) N
      • Computer Science
        • Terminology and Concepts
        • Network
        • Operating System
        • Database
        • Data Structure
      • Frontend
        • Javascript Essentials
        • Perfomance Optimization
        • JS Patterns
        • Next.js
        • Flutter
      • Backend
        • Node.js
      • DevOps
        • Docker & Kubernetes
      • Coding Test N
        • LeetCode N
        • Programmers
      • Tech Books & Lectures
        • Javascript_Modern JS Deep d..
        • Network_IT 엔지니어를 위한 네트워크 입문
      • Projects
        • PolyLingo_2025
        • Build Your Body_2024
        • JStargram_2021
        • Covid19 Tracker_2021
        • JPortfolio_2021
      • BootCamp_Codestates
        • TIL
        • TILookCloser
        • Pre Tech Blog
        • IM Tech Blog
        • Daily Issues and DeBugging
        • First Project
        • Final Project
        • Sprint Review
        • Good to Know
        • Socrative Review
        • HTML & CSS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 글쓰기
    • 관리
  • 공지사항

  • 인기 글

  • 태그

    Network
    polylingo
    Binary Tree BFS
    Operating System
    TCP/IP
    DOM
    JavaScript
    이벤트
    CPU scheduling algorithm
    Time complexity and Space complexity
    database
    indie hacker
    자바스크립트 딥다이브
    커리어
    VoiceJournal
    structure of os
    js pattern
    프론트엔드 성능 최적화 가이드
    leetcode
    자바스크립트
    모던 자바스크립트 Deep Dive
    Threads and Multithreading
    스코프
    Shared resources
    딥다이브
    need a database
    Data Structure
    How memory manage data
    testing
    mobile app
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
JTB
Authentication Token
상단으로

티스토리툴바