flask的基本使用 token插件(二)
一、安装flask-jwt-extended
安装flask-jwt-extend得时候 会自动安装一个pyjwt得库。pyjwt可以直接使用来生成JWT和验证。但是在flask中,可以通过Flask-JWT-Extended来实现JWT能,因为他封装了使用方式,以及一些属性和装饰器,用起来更加方便
pip install flask-jwt-extended
二、基本使用
1.简介
1.1 create_access_token()
create_access_token 函数用来生成实际的 JWT token
1.2 @jwt_required()
@jew_required 装饰器可以用来保护路由
1.3 get_jwt_identity()
get_jwt_identity()函数用来保护视图里面获取用户的身份信息。
2.初始化项目
创建python包 名称为api.
编辑api内 “init.py” 文件
from flask import Flask,blueprints
from flask_jwt_extended import JWTManager
from .views.home import blue_home#创建flask 实例的函数
def create_app():app = Flask(__name__)app.config["SECRET_KEY"] = "super-secret"app.register_blueprint(blue_home)return app# 初始化jwt的函数
def create_jwt(app):jwt = JWTManager()jwt.init_app(app)return jwt
3.创建token
编写main.py
from flask import request,jsonify
from api import create_app,create_jwt
from flask_jwt_extended import create_access_tokenapp = create_app()
jwt = create_jwt(app)@app.route('/login',methods=["POST"])
def index():username = request.form.get("username")password = request.form.get("password")if username == "admin" and password == "admin":# 当用户登陆成功,创建token并返回access_token = create_access_token(identity="admin")return jsonify(access_token)else:return "用户名或者密码错误!!!"if __name__ == "__main__":app.run(debug=True,host="0.0.0.0")
请求127.0.0.1:5000/login得到访问token
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcwNzAzNTg5MSwianRpIjoiNGJjNjY4NDctZTQxYy00ZjdmLWIxZWYtOTNjYjJmMTBjYzFmIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6ImFkbWluIiwibmJmIjoxNzA3MDM1ODkxLCJjc3JmIjoiY2VlZGNkZmMtNDIwMS00NmE4LWEzYTItZDRhNTliMDIwYjQ5IiwiZXhwIjoxNzA3MDM2NzkxfQ.SzMKMthP_xQ02QwgFwSu3Refc2oz1EseFgntPzS5U0g"
4.保护视图
创建一个视图函数 views/home.py
from flask import Blueprint
from flask_jwt_extended import jwt_required,get_jwt_identityblue_home = Blueprint('home',__name__)@blue_home.route('/home')
# 校验token 的函数
@jwt_required()
def home():# 可以获取token中的用户print(get_jwt_identity())return "<h1>home页面<h1>"
当用户不带token访问的时候,会报错
{"msg": "Missing Authorization Header"
}
客户端携带token认证格式
import requests,json
header = {"Authorization": "Bearer eyJhbGciOi.................."
}
res = requests.get("http://127.0.0.1:5000/home",headers=header)
参考连接:https://juejin.cn/post/7234450312726691898#heading-1
相关文章:
flask的基本使用 token插件(二)
一、安装flask-jwt-extended 安装flask-jwt-extend得时候 会自动安装一个pyjwt得库。pyjwt可以直接使用来生成JWT和验证。但是在flask中,可以通过Flask-JWT-Extended来实现JWT能,因为他封装了使用方式,以及一些属性和装饰器,用起…...
云计算、Docker、K8S问题
1 云计算 云计算作为一种新兴技术,已经在现代社会中得到了广泛应用。它以其高效、灵活和可扩展特性,成为了许多企业和组织在数据处理和存储方面的首选方案。 1.1 什么是云计算?它有哪些特点? 云计算是一种通过网络提供计算资源…...
【Iceberg学习二】Branch和Tag在Iceberg中的应用
Iceberg 表元数据保持一个快照日志,记录了对表所做的更改。快照在 Iceberg 中至关重要,因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本,Iceberg 提供了快照生命周期管理程序,如 expire_snapshots…...
在 Blazor WASM 中手撸一个.NET MD5类
最近.net8 blazor auto大火, 我也玩了一下,发现ssr能用的代码 MD5 类在wasm是没法用的. 于是搜索了一下互联网,找到了一份代码,分享给大家. 我找到的帖子作者原话: 代码不是我的,但我确实稍微修改了它以使其与 System.Security.Cryptography.MD5 类更加一致。 pub…...
MFC实现遍历系统进程
今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1)CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32P…...
【C语言】深入理解指针
目录 1.字符指针 2.指针数组 3.数组指针 4.数组传参与指针传参 一维数组传参 二维数组传参 一级指针传参 二级指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针(了解即可) 8.回调函数 回调函数的应用:库函数qsort …...
Excel——有效性、二级菜单联动
一、录入规范数据 1.手动输入序列录入有效性信息 选择需要录入有效性的所有单元格 选择【数据】——【有效性】——【有效性】 在【允许】输入的值之间选择【序列】 在【序列】输入框中输入想要选择的值,中间用逗号(必须是英文逗号)隔开 。…...
计算机网络总结
1. 网络分层 网络上进行协议分层的好处 ①分层之后层次之间的耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节; ②方便的对某一层的协议进行替换; 真实网络的协议分层 OSI 七层网络模型(教科书&…...
初识文件包含漏洞
目录 什么是文件包含漏洞? 文件包含的环境要求 常见的文件包含函数 PHP伪协议 file://协议 php://协议 php://filter php://input zip://、bzip2://、zlib://协议 zip:// bzip2:// zlib:// data://协议 文件包含漏洞演示 案例1:php://inp…...
AR特效自研AI算法技术解决方案
在当今这个高速发展的数字化时代,增强现实(AR)技术已经成为企业创新和市场竞争的重要手段。美摄科技凭借对AI技术的深厚积累,为企业提供了一套创新的AR特效自研AI算法技术解决方案,旨在满足企业在AR领域的多元化需求。…...
牛客2024年除夕娱乐赛(题解)
比赛地址 : 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A 看题面然后猜!!! #include<bits/stdc.h> using namespace std; int main(){cout << "原神启动" << endl; } B 也是看题面然后猜 : #include<bits/stdc.…...
5 scala的函数式编程简介
与Java一样,Scala 也是使用 Lambda 表达式实现函数式变成的。 1 遍历 除了使用 for 可以对数组、List、Set 进行遍历外,也可以使用 foreach 函数式编程进行遍历,使代码更为简洁。 foreach 的方法签名为: foreach(f: (A) > …...
陪护系统|陪护小程序提升长者护理服务质量的关键
在如今逐渐老龄化的社会中,老年人对更好的护理服务需求不断增加。科技的进步使得陪护小程序系统源码成为提供优质服务的重要途径之一。本文将从运营角度探讨如何优化陪护小程序系统源码,提升长者护理服务的质量。 首先,我们需要对软件的设计和…...
C++算法之双指针、BFS和图论
一、双指针 1.AcWing 1238.日志统计 分析思路 前一区间和后一区间有大部分是存在重复的 我们要做的就是利用这部分 来缩短我们查询的时间 并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序 因为在有序的区间内才能使用双指针记录两个区间相差 相当于把一个…...
【大厂AI课学习笔记】1.5 AI技术领域(3)自然语言处理
今天来梳理自然语言处理的相关内容。 自然语言处理:定义、关键技术、技术发展、应用场景与商业化成功 一、自然语言处理的定义 自然语言处理(NLP)是人工智能(AI)领域的一个重要分支,它研究的是如何让计算…...
【数字电子技术课程设计】多功能数字电子钟的设计
目录 摘要 1 设计任务要求 2 设计方案及论证 2.1 任务分析 2.1.1 晶体振荡器电路 2.1.2 分频器电路 2.1.3 时间计数器电路 2.1.4 译码驱动电路 2.1.5 校时电路 2.1.6 整点报时/闹钟电路 2.2 方案比较 2.3 系统结构设计 2.4 具体电路设计 3 电路仿真测试及结…...
【新书推荐】7.3 for语句
本节必须掌握的知识点: 示例二十四 代码分析 汇编解析 for循环嵌套语句 示例二十五 7.3.1 示例二十四 ■for语句语法形式: for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析: 第一步:执行表达式1,表达式1…...
爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测
目录 背影 极限学习机 爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测 主要参数 MATLAB代码 效果图 结果分析 展望 完整代码下载链接:爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测(代码完整,数据)资源-CSDN文库 https://d…...
挑战杯 opencv 图像识别 指纹识别 - python
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器视觉的指纹识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适…...
【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(2)
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…...
Z-Image-GGUF完整教程:阿里通义文生图模型从安装到出图
Z-Image-GGUF完整教程:阿里通义文生图模型从安装到出图 你是不是也想过,要是能用几句话就让电脑画出你想象中的画面,那该多酷?比如,你想看“樱花树下的古寺,夕阳西下,电影感十足”,…...
Z-Image-Turbo LoRA Web服务GPU优化:显存碎片整理与长期运行稳定性保障
Z-Image-Turbo LoRA Web服务GPU优化:显存碎片整理与长期运行稳定性保障 1. 项目概述与核心价值 今天要跟大家分享的是一个基于Z-Image-Turbo模型的图片生成Web服务,重点解决了GPU显存管理和长期稳定运行的关键问题。这个服务不仅支持高质量的图片生成&…...
Openclaw 股票分析助手,自定义选股+情绪预警实时推送
最近我越来越觉得,炒股这件事,难的不是完全看不懂,而是你根本没那么多时间,把该看的东西全都看一遍。平时工作忙一点,白天不是在开会,就是在处理各种事情。别说一直盯着盘面了,有时候连行情软件…...
CG迷李辰全面掌握ComfyUI系统教程2025年结课(超清画质带大部分素材)
全面掌握 ComfyUI:AI 设计变现新技能,经济收益深度解析在生成式人工智能(AIGC)从“尝鲜玩具”向“生产力工具”转型的2025-2026年,设计行业的经济逻辑正在经历一场剧烈的重构。当简单的文本生成图像(Text-t…...
FastAdmin框架旧版本踩坑记:手把手教你修复那个能读任意文件的CVE-2024-7928漏洞
FastAdmin框架安全实战:深度解析CVE-2024-7928漏洞修复与防御策略 当安全扫描报告突然标红显示"FastAdmin框架存在任意文件读取漏洞(CVE-2024-7928)"时,作为项目负责人的你可能会瞬间心跳加速。这个看似简单的漏洞编号背…...
收藏!小白程序员也能轻松掌握大模型:VLLM入门指南与实战教程
收藏!小白程序员也能轻松掌握大模型:VLLM入门指南与实战教程 VLLM是由伯克利大学LMSYS组织开源的大语言模型高速推理框架,通过PagedAttention技术、连续批处理和优化CUDA内核,显著提升模型推理吞吐量和内存效率。本文详细介绍了VL…...
JavaScript金融计算中的精度陷阱与高精度解决方案
1. 金融计算中的精度灾难:从0.10.2≠0.3说起 如果你在Chrome控制台输入0.1 0.2,得到的不是预期的0.3,而是0.30000000000000004这个诡异的数字。我第一次在支付系统对接时遇到这个问题,差点因为几分钱的差额导致整个对账流程崩溃。…...
剪映视频去水印+去字幕+去logo三合一操作流程(新手必备)
在短视频创作热潮中,剪映凭借免费、易用的优势,成为多数创作者的首选剪辑工具。但在实际使用中,不少人会遇到一个共性问题:剪映导出的视频自带水印、素材中夹杂多余字幕,或搬运、引用的素材带有品牌Logo,尤…...
C# 爬虫抓图遇到TLS 1.3报错?.NET Framework 4.7 的终极自救指南
C# 爬虫抓图遇到TLS 1.3报错?.NET Framework 4.7 的终极自救指南 当你的C#爬虫在.NET Framework 4.7环境下突然开始报错"未能创建 SSL/TLS 安全通道",而昨天还能正常运行——这很可能是因为目标服务器升级到了TLS 1.3协议。作为一个长期维护企…...
仅限产线工程师获取:Python网关调试禁忌清单(含12个厂商文档刻意回避的硬件层坑点,第7条致90%项目延期)
第一章:Python网关调试的产线准入机制与权限边界在工业级Python网关部署场景中,产线准入并非简单验证服务可达性,而是融合身份认证、环境隔离、行为审计与动态策略执行的多维控制体系。所有调试接入请求必须通过统一API网关前置鉴权模块&…...
