JSON Web Tokens (JWT) 是一种用于在各方之间安全地传输信息的开放标准(RFC 7519)。JWTs 通常用于身份验证和授权,并在 Web 应用程序中广泛使用。
JWT 结构
JWT 由三部分组成:
- 头部(Header):描述 JWT 的类型和签名算法。
- 载荷(Payload):包含关于实体(通常是用户)的信息。
- 签名(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 教程。
