flask中使用jwt生成token的方法以及请求验证
- 2025-03-27 13:06:00
- 开发
- 51
- shevechco
在前后端分离的场景中,我们经常使用到token,那么我们今天就来记录下如何生成和验证token
首先是生成token,我们使用得到了jwt库,需要安装
pip install jwt
接着我们我们就需要生成token,代码如下:
from flask import current_app
import jwt
#生成token
def generate_token(user_id, account):
exp = 3600
payload = {
'id': user_id,
'account': account,
'exp': datetime.now() + timedelta(seconds=exp)
}
token = jwt.encode(payload=payload, key=current_app.secret_key, algorithm='HS256')
return token
验证的主要代码如下:
from flask import current_app
import jwt
#验证token
def verify_token(token):
data = dict()
try:
data = jwt.decode(token, key=current_app.secret_key, algorithm='HS256')
except Exception as e:
current_app.logger.error("Token 验证失败, {}".format(e))
return data
在flask中,我们可以利用钩子函数,在前置方法中进行token的验证,避免在每个接口去验证token,方法如下:
from flask import g
from common import verify_token
@app.context_processor
def request_verify_token():
data = request.headers.get('token')
if 'id' in verify_token(data):
g.user_id = data['id']
这样就可以在每个视图函数中使用g.user_id获取到用户的id了。
内容版权声明:除非注明,否则皆为本站原创文章。