标签:None return Flask token Token data id def
生成Token,验证Token代码如下:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, SignatureExpired, BadSignature from config import BaseConfig from flask import request, jsonify from functools import wraps from db_connect import db_select # 生成token, 有效时间为24小时 def generate_token(id, username=None, expiration=86400): serializer = Serializer(BaseConfig.SECRET_KEY, expires_in=expiration) data = {'id': id, 'username': username} if username is not None else {} return serializer.dumps(data) # 解析token def verify_token(token): serializer = Serializer(BaseConfig.SECRET_KEY) # token正确 try: data = serializer.loads(token) return data # token过期 except SignatureExpired: return None # token错误 except BadSignature: return None # token无值 except Exception as e: return None # 获取登录用户id def get_user_id(): token = request.headers.get('Authorization') data = verify_token(token) id = data["id"] return id def login_required(func): """登录校验装饰器 :param func:函数名 :return: 闭包函数名 """ @wraps(func) def decorated(*args, **kwargs): token = request.headers.get('Authorization', None) if verify_token(token): return func(*args, **kwargs) return jsonify({'code': 401, 'msg': '登录过期,请重新登录!'}) return decorated
# 判断是否为管理员 def is_admin(user_id): admin_sql = f"SELECT tg.name FROM tb_users tu \ LEFT JOIN tb_groups tg \ ON tu.group_id=tg.id \ WHERE tu.id={user_id}" auth_type, auth_name = db_select(admin_sql) if auth_type[0][0] != "管理员": return True else: return False
标签:None,return,Flask,token,Token,data,id,def 来源: https://www.cnblogs.com/yyf993/p/16378203.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。