<요약>
bcrypt는 비밀번호의 안전한 저장과 비교에 사용 (bcrypt는 데이터베이스에 저장)
JWT는 사용자 인증 및 권한 관리에 사용됩니다. (유저 인증 개념)
회원가입 : bcrypt를 사용하여 비밀번호를 해싱하고,
로그인: 비밀번호를 비교하기 위해 bcrypt를 사용/ 로그인 후 JWT 생성하고 사용자 인증 및 권한을 관리하기 위해 활용됩니다.
게시물 생성: JWT는 사용자 인증에 필요한 정보를 제공하는 데 사용
Bcrypt | JWT | |
회원가입 | O (비번 해싱해서 저장) | X |
로그인 | O (비번 비교) | O (토큰 생성, 발급) |
게시물 생성 | X | O (인증) |
JWT(Jason Web Token)는
사용자 인증과 관련된 다양한 기능에서 사용될 수 있으며,
주로 회원가입, 로그인, 게시물 생성과 같은 기능에서 다음과 같이 활용됩니다:
1. 회원가입 (Sign-Up):
- bcrypt: 회원가입 시에는 사용자의 비밀번호를 해싱하여 안전하게 '저장'해야
bcrypt와 같은 암호화 라이브러리를 사용하여 사용자의 비밀번호를 해싱한 다음, 해시된 비밀번호를 데이터베이스에 저장합니다. 해시된 비밀번호는 원래 비밀번호를 복구할 수 없으므로 안전합니다.
2. 로그인 (Login):
- bcrypt: 사용자가 로그인할 때, 입력한 비밀번호를 해싱하여 데이터베이스에 저장된 해시된 비밀번호와 비교합니다. 일치하면 로그인이 허용됩니다.
- JWT: 로그인에 성공한 사용자에게 JWT 토큰을 생성하고 반환합니다. 이 토큰은 사용자를 인증하고, 토큰을 가지고 있는 사용자는 로그인한 상태로 간주됩니다. JWT 토큰은 사용자의 고유한 정보를 포함하고 있을 수 있으며, 클라이언트는 이 토큰을 저장하고 나중에 서버에 대한 요청 시에 토큰을 포함시켜 사용자를 인증합니다.
3. 게시물 생성 (Create Post):
- JWT: 게시물을 생성하는 요청에는 JWT 토큰이 필요할 수
게시물을 생성한 사용자를 인증하고, 누가 게시물을 작성했는지를 확인하는 데 사용됩니다.
게시물을 생성할 때, JWT 토큰을 요청 헤더에 포함시켜 서버에서 사용자를 인증하고 사용자의 ID나 권한을 확인할 수 있습니다.
자유이용권처럼, 머리에 새기는 것 header= jwt
로그아웃하기 전까지 계속 들고다니게 해주는 것.
들어올 때마다, (게시글 사용) ->
verify를 써서, 너 자유이용권있네? 있어
상세페이지에는 쓸 필요없죠. 로그인이 필요없으니까.
'Wecode - Project 2 (부트캠프) > 독학' 카테고리의 다른 글
layered pattern : API Architecture (0) | 2023.10.04 |
---|---|
api endpoint를 설계 하고 구현하는게 뭐니 (0) | 2023.10.03 |
[dbmate] dbmate up vs. dbmate migration, dbmate drop (0) | 2023.10.02 |
[깃허브] git push vs. git push -u (0) | 2023.10.02 |
query string ** (0) | 2023.09.29 |