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了。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/1008

相关推荐