[TIL] 2021.12.30

[TIL] 2021.12.30

오늘 한일

- jwt에 대해 이해

- 이미지 파일을 DB에 저장하는 방식

- 프로젝트 CRUD작업

회고

jwt 가 어떻게 인증에 사용되고 서버에서 토큰을 받아 사용자를 특정하고 마이페이지 같은 기능을 해줄 수 있는지

사용자가 로그인을 한다. 서버에서는 계정 정보를 읽어 사용자를 확인 후, payload에 id값과 유효기간을 설정한 후 payload, SECRET_KEY, algorithm을 jwt encode 해서 토큰을 만든다. 사용자는 토큰을 받아 저장한 후, 인증이 필요한 요청마다 토큰을 보낸다. 서버에서 그 토큰의 유효성을 검사한다. 유효하다면 서버에서 토큰을 다시 decode 해서 id값으로 그 사용자가 누구인지 알고 DB에 저장된 정보를 찾을 수 있다.

왜 사용되는지 알고 구조를 이해하고 팀원분의 설명을 들어보고 직접 해보기도 했는데 평소에는 그저 사용하던 로그인 기능인데 생각보다 예외처리 할 부분이 좀 있었다.

flask를 이용한 파일 업로드

서버 컴퓨터 (static 폴더)에 이미지 파일을 저장하고, 해당 이미지 파일의 이름만을 DB에 저장하는 방식 (이름을 통해서 이미지를 찾아내어 표시함) DB에 이미지 자체를 분할하여 저장하는 방식 (gridfs 활용) 스토리지 서비스 (AWS S3 등)에 이미지 파일을 올리고, 해당 주소의 URL을 받아와서 이를 이용해서 이미지를 표시하는 방식 (DB에는 해당 주소의 URL만 들어감)

처음에 3번으로 해보려고 AWS S3를 가입하고 세팅했으나 1번으로 바꿨다. 너무 정보가 적더라

내일 할 일

- 프로젝트 CRUD

- 내가 올린 피드 모아보기 좋아요 순으로 (좋아요 작업 끝나면)

- 피드 북마크 모아보기

from http://rookieno.tistory.com/13 by ccl(A) rewrite - 2021-12-30 22:27:00