写一个生成jwt令牌和解密的方法
时间: 2023-06-12 16:07:44 浏览: 115
使用JJWT库的Java JWT令牌教程
生成JWT令牌的方法:
```python
import jwt
# 生成JWT令牌
def generate_jwt(secret_key, payload, algorithm='HS256'):
encoded_jwt = jwt.encode(payload, secret_key, algorithm=algorithm)
return encoded_jwt.decode('utf-8')
```
解密JWT令牌的方法:
```python
import jwt
# 解密JWT令牌
def decode_jwt(secret_key, encoded_jwt):
decoded_jwt = jwt.decode(encoded_jwt, secret_key, algorithms=['HS256'])
return decoded_jwt
```
其中,`secret_key` 是用于加密和解密JWT令牌的密钥,`payload` 是要加密的数据,`algorithm` 是加密算法,建议使用默认值`HS256`,可以根据需要选择其他算法。
调用示例:
```python
# 生成JWT令牌
secret_key = 'my_secret_key'
payload = {'user_id': 123, 'exp': 1635494400}
jwt_token = generate_jwt(secret_key, payload)
print(jwt_token)
# 解密JWT令牌
decoded_jwt = decode_jwt(secret_key, jwt_token)
print(decoded_jwt)
```
输出:
```
eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJ1c2VyX2lkIjogMTIzLCAiZXhwIjogMTYzNTQ5NDQwMH0.o1K2X9K7x9dG7d1ZwRZp6U5cDwA0Yz2aG2QkNc5sQMI
{'user_id': 123, 'exp': 1635494400}
```
阅读全文