본문 바로가기

Books/about dev

[깔끔한 파이썬 탄탄한 백엔드]7장 인증(authentication)

7장 인증(authentication)

  1. sign-up 엔드포인트를 통해서 사용자 가입
  2. id/password 데이터베이스에 저장 - 비밀번호는 암호화해서 저장한다.
  3. 로그인에 성공하면 access token을 클라이언트에게 전송.
  • 사용자의 비밀번호를 암호화할때는 단방향 해시 함수가 일반적으로 쓰인다.(복호화 불가능)

파이썬에 해당함수 모듈이 포함되어있다.

import hashlib
  • 원본 비밀번호값을 1만 증가시켰을지라도 해시함수로 암호화한 비밀번호값은 완전히 다르다.

avalanche effect : 입력값에 미세한 변화를 줄 경우 출력값에 상당한 변화가 일어나는 성질

bcrypt

salting과 키 스트레칭을 구현한 함수중 가장 널리 사용되는 해시함수.

pip install bcrypt

access token

JWT(Json Web Tokens)

access token을 생성하는 방법 중 가장 널리 사용되는 기술. 데이터 전송 및 검증이 가능하다.

 

 

 

  • header

    토큰 타입과 해시 알고리즘을 지정.

  • payload

    실제로 서버간에 전송하고자 하는 데이터 부분. 민감한 정보는 넣지 않는 것이 좋다. 암호화되지 않는 코드기때문.

  • signature

    jwt가 원본 그대로라는 것을 확인할 때 사용.