간혹 증권사나 코인거래소의 경우
dll, com 등을 제공하지 않고 아예 Restful API 라고 제공을 하더라.
내가 웹쪽은 많이 하지않다보니 잘 모르겠고 샘플찾아다가 꾸역꾸역 작성해서 테스트를 했다.
그 중 JWT라는게 있어서 찾아봤다.
JWT (JSON Web Token)란?
JWT (JSON Web Token)는 JSON 객체를 사용하여 두 시스템 간에 정보를 안전하게 전송하는 개방형 표준입니다.
일반적으로 인증과 권한 부여에 사용됩니다. JWT는 세 부분으로 나뉩니다:
- Header (헤더): 토큰의 타입 (JWT)과 해시 알고리즘 (예: HMAC, SHA256 등)을 포함합니다.
- Payload (페이로드): 클레임(claims)이라고 하는 사용자 정보나 기타 데이터를 포함합니다. 이는 암호화되지 않으므로 민감한 정보는 포함되지 않아야 합니다.
- Signature (서명): 헤더와 페이로드를 인코딩하고 비밀 키로 서명한 값으로, 토큰이 위조되지 않았음을 검증하는 데 사용됩니다.
JWT는 주로 토큰 기반 인증 시스템에서 클라이언트와 서버 간의 인증을 처리하는 데 사용되며, 다음같은 특징이 있다.
- 클라이언트가 서버로부터 JWT를 발급받아 이후 요청에 포함시켜 인증을 수행합니다.
- 서버는 상태를 유지할 필요가 없으며, 클라이언트에서 JWT를 저장하고 필요한 경우 이를 서버에 전송합니다.
JWT 외부 라이브러리
1. C#에서 사용할 수 있는 JWT 라이브러리
- System.IdentityModel.Tokens.Jwt (Microsoft 공식 라이브러리)
- Microsoft에서 제공하는 공식 JWT 라이브러리로, .NET에서 JWT를 생성하고 검증할 수 있는 기능을 제공
- Jwt.Net
- JWT 생성과 검증을 위한 또 다른 인기 있는 라이브러리
2. Java에서 사용할 수 있는 JWT 라이브러리
- Java JWT (Auth0)
- Auth0에서 제공하는 가장 널리 사용되는 JWT 라이브러리 중 하나로, 다양한 기능과 지원을 제공
- jjwt (Java JWT)
- Java에서 JWT를 생성하고 검증하는 데 필요한 기능을 제공하는 라이브러리입
3. Python에서 사용할 수 있는 JWT 라이브러리
- PyJWT
- 가장 널리 사용되는 JWT 라이브러리 중 하나입니다. JWT의 생성, 인코딩, 디코딩, 검증 등의 기능을 제공합니다.
- 특징: RSA 및 HMAC 서명 지원, JSON을 기반으로 토큰을 처리함
- Authlib
- OAuth 및 OpenID Connect 인증 프로토콜과 함께 JWT 기능을 지원하는 종합적인 라이브러리입니다.
- OAuth 구현이나 토큰 발급 시스템이 포함된 프로젝트에서 유용합니다.
- djangorestframework-simplejwt
- Django 프로젝트에서 JWT 인증을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. Django REST framework와 함께 주로 사용됩니다.
'프로그래밍&IT > 용어' 카테고리의 다른 글
[Database] 데이터베이스 정규화. (1,2,3 정규화) (0) | 2022.10.10 |
---|---|
RNR? R&R? (0) | 2022.07.09 |