JSON Web Tokens (JWT) 是一种用于在各方之间安全地传输信息的开放标准(RFC 7519)。JWTs 通常用于身份验证和授权,并在 Web 应用程序中广泛使用。

JWT 结构

JWT 由三部分组成:

  1. 头部(Header):描述 JWT 的类型和签名算法。
  2. 载荷(Payload):包含关于实体(通常是用户)的信息。
  3. 签名(Signature):用于验证 JWT 的完整性和真实性。

生成 JWT

以下是一个简单的 Python 示例,展示如何生成一个 JWT:

import jwt
import datetime

# 秘钥
SECRET_KEY = 'your_secret_key'

# 载荷
payload = {
    'sub': '1234567890',
    'name': 'John Doe',
    'iat': datetime.datetime.utcnow(),
    'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}

# 生成 JWT
token = jwt.encode(payload, SECRET_KEY, algorithm='HS256')

print(token)

使用 JWT

要使用 JWT,您需要对其进行解码并验证其签名。以下是一个简单的 Python 示例:

import jwt

# 秘钥
SECRET_KEY = 'your_secret_key'

# JWT
token = 'your_jwt_token'

# 解码 JWT
try:
    decoded_token = jwt.decode(token, SECRET_KEY, algorithms=['HS256'])
    print(decoded_token)
except jwt.ExpiredSignatureError:
    print('签名过期')
except jwt.InvalidTokenError:
    print('无效的 JWT')

扩展阅读

如果您想了解更多关于 JWT 的信息,请访问我们的 JWT 教程

![JWT 图解](https://cloud-image.ullrai.com/q/JWT Diagram/)