본문 바로가기

항해99_10기/105일의 TIL & WIL

[20221114] 회원가입 및 로그인 - 해시함수와 JWT / REST API

오늘 배운 것

  • 회원가입 및 로그인에 가장 많이 사용되는 해시함수JWT
    • 해시함수는 어떤 값을 입력하던 항상 고정된 길이의 임의의 값으로 변환해주는 알고리즘임.
    • 보통 많이 쓰이는 것은 sha256 -> 어떤 값을 넣어도 256바이트의 결과값을 반환해줌 (요즘은 512바이트도 많이 사용한다고 함)
    • 회원가입시, 유저가 입력한 암호 값을 해쉬함수 값으로 변환하여 db에 저장하고, 로그인 할때, 다시 유저가 입력한 암호값을 sha256으로 반환하여 db에 저장된 sh256값과 검증을 하여 로그인 해 줌
  • Jason Web Token의 약자인 (JWT)는 인증에 필요한 정보를 암호화시킨 토큰을 의미함
    • JWT에는 header, payload, verify signater 세가지 정보가 들어감
      • Header : 위 3가지 정보를 암호화할 방식(alg), 타입(type) 등이 들어감
      • Payload : 서버에서 보낼 데이터로, 유저의 고유 ID값, 유효기간 등이 일반적으로 들어감
      • Verify Signature :  Base64 방식으로 인코딩한 Header, payload 그리고 SECRET KEY를 더한 후 서명됨
    • Header 와 Payload의 정보는 인코딩(16진수로 변경)만 될 뿐, 암호화 되지 않아, 유저의 중요 정보가 들어가면 쉽게 노출 될 수 있는 반면, Verify Signature는 암호화 되어 SECRET KEY를 알아야만 복호화 할 수 있음

출처 : https://tansfil.tistory.com/58?category=255594

  • 장점
    1. 세션/쿠키 로그인 방식에 비해 별도의 저장소 필요하지 않으므로, stateless 서버를 만드는 서비스에 큰 이점을 가짐
    2. 뛰어난 확장성 - 토큰을 기반으로 하는 다른 인증시스템에 접근이 가능. 예를 들면, 구글도 토큰을 기반으로 인증하므로, 구글에 저장된 개인 정보를 받아올 수 있는 권한을 받을 수 있음
  • 단점
    1. 이미 발급된 쿠키는 돌이킬 수 없음. 마치 놀이공원 자유이용권과 같음. 발급받은 팔찌는 돌이킬 수 없고, 유효기간동안은 계속 사용이 가능함 => 토큰 유효기간동안은 정보를 털릴 수 있음
      • 해결책으로, access tocken의 유효기간을 짧게하고 refresh tocken을 발급하여 access tocken을 탈취 당해도 상대적으로 피해를 줄일 수 있음
    2. Payload 정보는 암호화 되지 않기 때문에 사용이 제한적임
    3. JWT의 길이가 길기 때문에 인증 요청이 많을 수록, 서버의 자원낭비가 발생
 

쉽게 알아보는 서버 인증 1편(세션/쿠키 , JWT)

앱 개발을 처음 배우게 됐을 때, 각종 화면을 디자인해보면서 프론트엔드 개발에 큰 흥미가 생겼습니다. 한때 프론트엔드 개발자를 꿈꾸기도 했었죠(현실은 ...) 그러나 서버와 통신을 처음 배웠

tansfil.tistory.com

 

 

JWT에서 Refresh Token은 왜 필요한가?

개인 프로젝트 중 JWT를 사용하는 SimpleTodoList 에서는 회원가입 후 로그인 시 아래처럼 JWT를 발급해준다.이 토큰은 애플리케이션 전반에서 사용자를 인증하는데 사용된다. 기존의 세션과는 달리

velog.io

 

  • REST API
    • REST란 Representational State Transfer의 약자로,  API(Application Program interface) 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처임. 이렇게, REST 스타일을 따라 설계된 API를 REST API라고 부름.
    • REST API 설계시에 중요한 항목이 있는데, URI는 정보의 자원을 표현해야하며, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)으로 표현해야 함
 

RESTful API란 무엇인가? - RESTful API 초보자 가이드 - AWS

Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API Gateway를 사용하면 실시간 양방향 통신 애

aws.amazon.com

 

[REST API] URL 규칙, RESTful한 URL이란?

REST API URL 규칙, RESTful한 URL이란?RESTful API REST API 설계시 가장 중요한 항목은 아래 두가지이다. 1️⃣ URI는 정보의 자원을 표현해야 한다는 점 2️⃣ 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)

devuna.tistory.com

 

오늘 느낀점

오늘은 항해99의 1주차 1일차이다.

아침 9시부터 오후 9시 + 이후 자습까지 스케줄이 빽빽하게 차있었다.

솔직히 대학생시절 이후 이렇게 빽빽하게 공부하기는 오랜만이라 머리가 멍해졌다.

오늘은 풀스택 미니 프로젝트 아이디에이션과 회원가입/로그인 관련 세션을 진행했는데, 아무래도 저녁때 진행된 세션에서는 정신을 못 차렸다.

그래도 이렇게 앉아서 TIL을 작성하려고 블로그 자료를 보면서 다시 정리를 해보니 개념이 잘 정리되는 듯 싶다. 

프로젝트에서 이제 적용을 해봐야지...