首页 > 编程语言 >Python+Flask接口实现简单的ToKen功能

Python+Flask接口实现简单的ToKen功能

时间:2023-08-29 16:23:00浏览次数:45  
标签:return Key Python jsonify Flask ToKen key date import

话不多说,上代码

from flask import request, jsonify
from functools import wraps


class TokenRequired:
    @classmethod
    def token_required(cls, f):
        @wraps(f)
        def decorated_function(*args, **kwargs):
            # 获取请求头部中的key字段
            # 也可以定义多个,这里仅定义了一个key
            try :
                key=request.headers.get('key')
                if not key:
                    return jsonify({'message': 'Key缺失!'}), 401
                hf=HFCryptogramLibrary()#自定义的加密方法
                #解密Key
                key=hf.Decode(key)
                if not key.startswith("自定义的Key格式"):
                    return jsonify({'message': 'Key格式有误!'}), 401
                # 这里可以实现你自己的key格式转换,这里模拟转换日期
                date_object = datetime.strptime(key, "%Y%m%d").date()

                current_date = date.today()

                if current_date > date_object:
                    return jsonify({'message': 'Key已过期'}), 401

                # 验证通过,执行被装饰函数
                return f(*args, **kwargs)
            except Exception as err:
                return jsonify({'success':False,'message': f'{err}'}),200
        return decorated_function    

  接口的验证使用

from flask import Flask, request, jsonify
from ToKenRequired import TokenRequired
#ToKenRequired可以自定义类名

@app.route('/api/data, methods=['POST'])
@TokenRequired.token_required#这里调用token
def Data():
    text=''
    response = returnTrue(text)
    return jsonify(response)

  如有不足,还请各位大佬多多指教

标签:return,Key,Python,jsonify,Flask,ToKen,key,date,import
From: https://www.cnblogs.com/HoFei/p/17665167.html

相关文章

  • Python多进程实例
    python多进程实例废话不多说,直接上代码。#-*-coding:utf-8-*-frommultiprocessingimportPoolfrommultiprocessingimportProcessimportmultiprocessingimportnumpyasnpimportpandasaspd#通用dataframe切片后多进程异步执行方法defparallelize_dataf......
  • python字典中的值为列表
    python字典中的值为列表构造字典,字典中的值为列表。实例:vales=[13,12,11,3,4,5,20,30,31]ex=[0,0,0,1,1,2,2,2]#是对vales的分类结果我们需要将分类结果对应的值,放在一起,由此将使用字典,最为合适,而key就是分类标签,而value则为对应的数据。ex_dic={}for......
  • day①-python基础
    Python介绍发展史Python2or3?安装HelloWorld程序变量用户输入模块初识.pyc是个什么鬼?数据类型初识数据运算表达式if...else语句表达式for循环breakandcontinue 表达式while循环作业需求 一、Python介绍python的创始人为吉多·范罗苏姆(GuidovanR......
  • 这是一个基于threading可停止线程的有限容量有限并行度的python任务管理器
    这是一个可停止线程的有限容量有限并行度的任务管理器基于:GitHub-AlitaIcon/StopableThreadJob:可停止线程任务管理器QuickStart基础调用与效果importtimeimportdatetimefromloguruimportloggerfromStopableThreadJob.job_managerimportJobManagerif__name......
  • 当某个excel工作簿的某个单元格的值发生变动时, 自动执行python某脚本, 如何实现?
    要实现当Excel工作簿中的某个单元格值发生变化时自动执行Python脚本,你可以考虑以下步骤:监视单元格变化:首先,你需要实现监视Excel工作簿中的特定单元格是否发生了变化。这可以通过使用VBA(VisualBasicforApplications)宏来实现。打开Excel工作簿,按下ALT+F11打开VBA编辑器,然后......
  • python 实现图片压缩
    1、背景由于前面推流通过代代版本更新,目前停留在图片每一帧根据键的不同存进django框架自带的内存空间中,但是因为存在同时观看27个,甚至更多的情况,所以降低性能就显得尤为重要,虽然现在前端观看9个仅用20%CPU性能,后端也不高,但是也是要降2、python压缩图片的选择一、Pillow库Py......
  • 【Python-每日技巧】格式化输出的区别
    在Python中,字符串可以使用单引号(')或双引号(")括起来。如果字符串本身包含引号字符,你可以在字符串中使用反斜杠(\)进行转义。对于字符串中的美元符号($),它是一个普通的字符,不需要进行特殊处理。你可以直接在字符串中使用美元符号,如下所示:my_string="Thisisastringwitha$symbol."......
  • ModuleNotFoundError: No module named 'flask._compat’
    原因:flask版本过高,flask里面的._compat.py文件没有;解决方案1:解决:降低flask版本,1.1.2即可pipinstallflask==1.1.2 解决方案2:更改flask_script文件,Ctrl+左键 进入到flask_script的 __init__.py 源码文件中,将 fromflask._compatimporttext_type 语句改成 fromf......
  • python加载so库
    fromctypesimportCDLL,RTLD_GLOBALfrom..ankeimportcurrentOSclassLoadSo:def__init__(self,soPath,args):ifcurrentOS!='darwin':forarginargs:"""1、麒麟、UOS环境循环......
  • Python+协同过滤算法实现一个简单的图书推荐系统
    背景介绍当我们做一些推荐系统网站时,通常需要合适的推荐算法,下面给大家介绍推荐系统中经典的推荐算法——协同过滤算法。在本文中通过Python语言,以一个图书推荐系统为案例,最终实现一个基于用户对图书的评分而对指定的用户个性化推荐的网站系统。(ps:本文中介绍的是算法的简单示例,......