栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

flask中生成token

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flask中生成token

目录
  • 封装
  • 使用

封装
from datetime import datetime, timedelta

import jwt
from flask import current_app


def generate_jwt(payload, expiry, secret=None):
    """
    生成jwt
    :param payload: dict 载荷
    :param expiry:  datatime 有效期
    :param secret:  盐
    :return:  返回token
    """

    if "expiry" not in payload:
        payload["expiry"] = expiry

    # 判断盐是否存在
    if secret:
        secret = current_app.config["SECRET_KEY"]

    # 生成token  jwt.encode
    token = jwt.encode(payload, secret, algorithm="HS256")
    return token


def verify_jwt(token, secret=None):
    """
    校验token
    :param token:  token值
    :param secret:  盐
    :return:  payload 载荷
    """

    # 判断盐是否存在
    if not secret:
        secret = current_app.config["SECRET_KEY"]

    try:
        # 校验token jwt.decode
        payload = jwt.decode(token, secret, algorithms="HS256")
    except Exception as e:
        print("错误信息>>", e)
        # 校验失败返回None
        payload = None
    return payload


def _generate_token(user_id):
    """
    生成token
    :param user_id: 用户id
    :return: token
    """
    # 获取盐
    secret = current_app.config['SECRET_KEY']
    # 定义过期时间 两小时
    expiry = datetime.utcnow() + timedelta(hours=2)
    # 生成token
    token = generate_jwt({"user_id": user_id}, str(expiry), secret)
    return token
使用

在登录视图中使用_generate_token方法生成token

token = _generate_token(user_id)
# 然后返回给前端
return token
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号