python-131-KeyCloak学习之(五)同时支持浏览器和脚本调用接口 📅 发布时间:2026/7/16 4:35:16 👁️ 浏览次数: 文章目录1 同时支持浏览器和脚本使用2 方式一(装饰器)2.1 核心功能与流程解析2.1.1 统一认证装饰器(auth_required)2.1.2 浏览器登录流程(OAuth2)2.1.3 脚本/Token认证流程(JWT本地验签)2.2 整体代码3 方式二(分开路由)3.1 核心功能与流程解析3.1.1 网页认证路线(Session-based)3.1.2 API认证路线(Token-based)3.2 整体代码4 请求代码4.1 基于requests4.2 基于authlib分别使用装饰器和分开路由两种方式,让服务同时支持浏览器和脚本调用。然后分别用requests和authlib,实现了两种向API请求访问令牌(Access Token)并调用受保护资源的方式。1 同时支持浏览器和脚本使用现实中很多应用就是既给浏览器用、又给脚本调。比如一个管理后台,运营人员用浏览器操作,同时定时脚本用token批量拉数据。同一个/other接口支持两种认证方式,这个需求很常见。2 方式一(装饰器)这段代码实现了一个非常实用的“混合认证模式”。它巧妙地在一个Flask应用中同时兼容了两种完全不同的客户端场景:(1)浏览器用户:通过传统的OAuth2重定向流程进行登录,使用 Session/Cookie维持状态。(2)脚本/程序:通过HTTP Header中的Bearer Token进行认证,服务端进行无状态的本地JWT验签。这种设计非常适合构建既有人机交互界面(网页),又有机器交互接口(API)的通用后端服务。不管用户是浏览器登录的还是拿token调的,g.user里都有name,视图函数不需要关心来源。新增接口只要加一个@auth_required就行,不用重复写认证逻辑。2.1 核心功能与流程解析2.1.1 统一认证装饰器(auth_required)这是整个脚本的核心,它像一个智能网关,根据请求的特征自动选择认证方式:1、优先级A(浏览器Sessi
VC++6.0下C语言健壮整数输入与计算:从scanf陷阱到fgets+sscanf实战 1. 项目概述:从键盘输入整数并进行计算在VC6.0这个经典的开发环境中,用C语言实现从键盘输入整数并进行计算,这听起来像是一个教科书式的入门练习,但恰恰是很多初学者,甚至是有一定经验的开发者容易“眼高手低”的地方。… 2026/7/16 4:31:13
OpenSandbox 再进化:Credential Vault 让真实密钥不再进入沙箱 本文作者:靳文祥 前言 OpenSandbox 是一个阿里巴巴开源的面向 AI Agent 的通用沙箱平台,提供多语言 SDK、CLI、MCP Server,以及 Docker / Kubernetes 运行时,在阿里内部广泛应用于 Coding Agent、GUI Agent、代码执行、Agent 评测… 2026/7/16 4:29:09
YOLO26导出到CoreML和TFLite:DFL移除后的顺畅跨平台部署体验 引言:边缘AI部署的“最后一公里”痛点 在计算机视觉领域,YOLO系列一直是实时目标检测的代名词。然而,长期以来,将YOLO模型部署到移动端和边缘设备始终面临一个尴尬的现实:训练好的模型很强大,但导出和部署的过程却充满坎坷。 DFL(Distribution Focal Loss,分布焦点损… 2026/7/16 4:29:09
【2014-01-27】cocos2dx学习笔记:CCNode回调流程 [历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2014-01-27 | 标题:cocos2dx学习笔记:CCNode回调流程 | 分类: 编程 / C &&… 2026/7/16 5:44:33
C++ priority_queue 深度解构:从堆算法到容器适配器实现 1. 项目概述:从“会用”到“懂它”,一次对 priority_queue 的深度解构如果你用过 C STL 里的priority_queue,大概率会觉得它很方便:push一个元素,pop出来的总是当前“最大”或“最小”的那个。面试官问你它的底层是什么… 2026/7/16 5:42:32
集成过压保护模拟开关的设计与应用实践 1. 为什么我们需要重新思考保护电路设计在电子系统设计中,过压保护一直是个让人头疼的问题。传统方案通常采用TVS二极管、保险丝、继电器等分立器件搭建保护电路,这种方案我已经用了十几年。但最近在做一个工业传感器项目时,这套方案让我栽了… 2026/7/16 5:42:32
电子病历自动生成与结构化:AI模型赋能医疗信息管理新路径 电子病历自动生成与结构化:AI模型赋能医疗信息管理新路径 在医疗信息化不断推进的当下,电子病历作为医疗数据的重要载体,其质量与利用效率直接影响着医疗服务的质量和医疗研究的进展。电子病历自动生成与结构化技术,借助AI模型的力… 2026/7/16 5:40:31
二维数组对角线操作实战:从坐标规律到焦点遍历的双解剖析 1. 二维数组对角线操作入门:从概念到实战第一次接触二维数组对角线操作时,我也曾被那些坐标规律绕得头晕。直到在算法比赛中因为对角线问题丢分后,才真正静下心来研究这个看似简单却暗藏玄机的话题。二维数组对角线操作是信息学竞赛和算法面试… 2026/7/16 5:40:31
题解:AcWing 237 程序自动分析 【题目来源】 AcWing:237. 程序自动分析 - AcWing题库 【题目描述】 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设 x1,x2,x3,…x_1,x_2,x_3,…x1,x2,x3,… 代表程… 2026/7/16 5:36:29
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并 摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代… 2026/7/16 0:00:26
HAM未来路线图:下一代高可用迁移技术的发展方向与展望 HAM未来路线图:下一代高可用迁移技术的发展方向与展望 【免费下载链接】ham Based on the remote memory access capability and high bandwidth of the UB, deterministic duration virtual machine live migration is achieved, addressing planned downtime issu… 2026/7/16 0:04:27
月球是否是从地球分离出去的?——容度原理解释 月球是否是从地球分离出去的?——容度原理解释一、月球起源的“三大假说”与容度原理的重新审视月球起源的三大假说——捕获说(月球是太阳系中独立的星体,被地球引力捕获)、共生说(月球与地球同时从原始星云中形成&… 2026/7/16 0:06:27
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/16 3:47:53
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41