Flask-JWT-Extended使用教程
时间: 2024-09-25 19:21:08 浏览: 128
Flask-JWT-Extended是一个用于在Flask应用程序中方便地处理JSON Web Tokens (JWT) 的轻量级库。以下是使用Flask-JWT-Extended的基本步骤:
1. **安装库**:
首先,在你的项目目录中安装Flask-JWT-Extended:
```bash
pip install flask-jwt-extended
```
2. **设置环境变量**(可选):
如果你在生产环境中使用秘钥,建议将它们作为环境变量存储,而不是硬编码在代码里。例如,创建一个`.env`文件:
```
JWT_SECRET_KEY=your_jwt_secret_key_here
```
然后在启动应用时加载:
```python
from dotenv import load_dotenv
load_dotenv()
```
3. **初始化插件**:
在Flask应用中初始化插件:
```python
from flask_jwt_extended import JWTManager
jwt = JWTManager(app)
```
4. **配置JWT**:
```python
@app.before_first_request
def configure_jwt():
# 设置JWT密钥(这里使用env变量)
jwt.init_app(app, secret_key=os.environ.get('JWT_SECRET_KEY'))
```
5. **生成token**:
使用`create_access_token()`方法给用户生成token,传递一个可选的过期时间(默认30分钟):
```python
access_token = create_access_token(identity=user_id)
```
6. **验证token**:
在请求中检查token(例如在装饰器中):
```python
@app.route('/protected')
@jwt_required()
def protected_route():
current_user = get_jwt_identity() # 获取当前登录的用户
return {'message': f'Hello, {current_user}!'}
```
7. **刷新token**:
可以使用`refresh_jwt_token()`函数为已过期的token生成新token。
8. **错误处理**:
应对未授权访问、无效token等情况,可以自定义异常处理器。
阅读全文