core Webapi jwt 认证

core cookie 验证

Web API Jwt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
》》》》用户信息

namespace WebAPI001.Coms
{public class Account{public string UserName { get; set; }public string UserPassword { get; set; }public string UserRole { get; set; }}
}

》》》获取jwt类

using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using System.Runtime.CompilerServices;
using System.Security.Claims;
using System.Text;namespace WebAPI001.Coms
{public  class JwtHelper{      public static string GenerateJWT(Account user, IConfiguration _configuration){           byte[] keyBytes = Encoding.UTF8.GetBytes(_configuration?.GetValue<string>("TokenParameter:Secret"));var securityKey = new SymmetricSecurityKey(keyBytes);// 创建JWT的签名凭证var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);// 设置JWT的Claimsvar claims = new[]{new Claim(ClaimTypes.Name, user.UserName),new Claim(ClaimTypes.Role, user.UserRole),// 添加其他需要的声明};// 创建JWT的Tokenvar token = new JwtSecurityToken(issuer: _configuration.GetValue<string>("TokenParameter:Issuer"),audience: _configuration.GetValue<string>("TokenParameter:Audience"),claims: claims,expires: DateTime.Now.AddMinutes(_configuration.GetValue<int>("TokenParameter:AccessExpiration")),signingCredentials: signingCredentials);// 生成JWT字符串var jwtToken = new JwtSecurityTokenHandler().WriteToken(token);return jwtToken;}}
}

在这里插入图片描述

在这里插入图片描述

// Core 自带官方 JWT认证
// 开启Bearer 认证builder.Services.AddAuthentication(options =>{// 设置默认的身份验证和挑战方案为 JwtBeareroptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;}) // 配置 JWT Bearer 选项.AddJwtBearer(options =>{// 配置 Token 验证参数options.TokenValidationParameters = new TokenValidationParameters{// 验证发行者ValidateIssuer = true,// 验证受众ValidateAudience = true,// 验证令牌有效期ValidateLifetime = true,// 验证签名密钥ValidateIssuerSigningKey = true,// 发行者ValidIssuer = builder.Configuration["TokenParameter:Issuer"],// 受众ValidAudience = builder.Configuration["JokenParameter:Audience"],// 签名密钥IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["TokenParameter:Secret"])),AudienceValidator = (m, n, z) => {//自定义验证逻辑return true;}};options.Events = new JwtBearerEvents{OnAuthenticationFailed = context =>{// 如果过期,则把 是否过期 添加到  , 返回头信息中if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)){context.Response.Headers.Add("Token-Expired", "true");}return Task.CompletedTask;}//OnForbidden//OnChallenge//OnMessageReceived//OnTokenValidated};});

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/63447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运输层4——TCP格式(重点!)

目录 一、TCP报文段格式 二、最大报文长度 MSS 一、TCP报文段格式 长度&#xff1a;前20个字节固定 后4n个字节&#xff08;报文段格式不固定&#xff09; 1、源端和目的端&#xff1a;各2个字节 作用&#xff1a;指明TCP链接的发送 2、序号 4字节 作用&#xff1…

Android显示系统(03)- OpenGL ES - GLSurfaceView的使用

Android显示系统&#xff08;02&#xff09;- OpenGL ES - 概述 Android显示系统&#xff08;03&#xff09;- OpenGL ES - GLSurfaceView的使用 Android显示系统&#xff08;04&#xff09;- OpenGL ES - Shader绘制三角形 Android显示系统&#xff08;05&#xff09;- OpenGL…

关于睡懒觉

我们经常听到一个词&#xff1a;睡懒觉。 我认为&#xff0c;睡懒觉这个词&#xff0c;是错误的。 人&#xff0c;是需要睡眠的&#xff0c;睡不够&#xff0c;就不会醒。睡够了&#xff0c;自然会醒&#xff0c;也不想继续睡。不信你试试&#xff0c;睡够了&#xff0c;你…

kafka进阶_4.kafka扩展

文章目录 一、Controller选举二、Kafka集成2.1、大数据应用场景2.1.1、Flume集成2.1.2、Spark集成2.1.3、Flink集成 2.2、Java应用场景(SpringBoot集成) 三、Kafka常见问题3.1、Kafka都有哪些组件&#xff1f;3.2、分区副本AR, ISR, OSR的含义&#xff1f;3.3、Producer 消息重…

面试官:MongoDB是什么,它有什么特性与使用场景?

哈喽&#xff01;大家好&#xff0c;我是小奇&#xff0c;一个专给面试官添堵的撑序员 小奇打算以轻松幽默的对话方式来分享一些技术&#xff0c;如果你觉得通过小奇的文章学到了东西&#xff0c;那就给小奇一个赞吧 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一…

【Spring项目】表白墙,留言板项目的实现

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;项目实现准备 1&#xff1a;需求 2&#xff1a;准备工作 &#xff08;1&#xff09;…

【前端】React_Next.js

定期更新&#xff0c;建议关注、收藏&#xff01; 安装 要使用react的框架&#xff0c;都应当安装node.js conda install nodejs选择Next.js 并创建项目 npx create-next-applatest可以看到目录结构生成如下 作为网页中的一个子路由 想让其嵌入已经写好的项目中&#xf…

基于pytorch的深度学习基础4——损失函数和优化器

四&#xff0e;损失函数和优化器 4.1 均值初始化 为减轻梯度消失和梯度爆炸&#xff0c;选择合适的权重初值。 十种初始化方法 Initialization Methods 1. Xavie r均匀分布 2. Xavie r正态分布 4. Kaiming正态分布 5. 均匀分布 6. 正态分布 7. 常数分布 8. 正交矩阵初…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

爬取豆瓣电影的数据-----爬虫实战案例(爬取文字)

爬取豆瓣电影的数据 首先打开"豆瓣电影TOP250"网页&#xff1a; 右击鼠标&#xff0c;找到检查点击&#xff0c;然后再点击网络向上拉动&#xff0c;找到名称栏中的第一个&#xff0c;点击打开可以在标头里看到请求URL和请求方式&#xff0c;复制URL&#xff08;需…

MySQL 8.0 新特性汇总

文章目录 前言1. 运维管理 1.1 可持久化变量1.2 管理员端口1.3 资源组1.4 数据库粒度只读1.5 show processlist 实现方式1.6 加速索引创建速度1.7 控制连接的内存使用量1.8 克隆插件1.9 mysqldump 新增参数1.10 慢日志增强1.11 快速加列1.12 InnoDB 隐藏主键1.13 Redo 配置1.14…

使用PHPUnit使用本地调试代替远程调试,快速提高开发效率

Laravel 是一个在 Linux 环境下表现非常出色的 PHP 框架&#xff0c;但它在 Windows 环境下可能会遇到一些兼容性和配置问题。为了调试或没试的方便可以在 Windows 环境下进行 Laravel PHPUnit进行本地调试和测试。 本地主要针对断点调试效果非常高效。 在 Laravel 中&#x…

【BUG】VMware|vmrest正在运行此虚拟机,无法配置或删除快照

VMware版本&#xff1a;VMware 16 文章目录 省流版问题解决方案 详细解释版问题解决方案总结 省流版 问题 只读&#xff0c;因为vmrest正在运行虚拟机。 解决方案 参考&#xff1a;虚拟机设置&#xff0c;只读&#xff0c;因为vmrest正在运行此虚拟机。有谁遇到过这种问题吗&…

HTML表单-第二部分

HTML表单 表单元素是允许用户在表单中输入内容&#xff0c;比如&#xff1a;文本域&#xff0c;下拉列表&#xff0c;单选框&#xff0c;复选框等等‘ 使用<from>标签创建 例如 <from> . input . </from> HTML表单-输入元素 <input>标签创建&#xff…

声音克隆GPT-SoVITS

作者&#xff1a;吴业亮 博客&#xff1a;wuyeliang.blog.csdn.net 一、原理介绍 GPT-SoVITS&#xff0c;作为一款结合了GPT&#xff08;生成预训练模型&#xff09;和SoVITS&#xff08;基于变分信息瓶颈技术的歌声转换&#xff09;的创新工具&#xff0c;正在声音克隆领域掀…

008-MAC地址表配置

MAC地址表配置 MAC地址表中对于接口的相关配置&#xff0c;目前只能在二层以太网端口、二层聚合接口等二层接口上进行。本章节内容只涉及单播的静态、动态、黑洞MAC地址表项的配置。有关静态组播MAC地址表项的相关介绍和配置内容&#xff0c;请参见“IP组播配置指导”中的“IGM…

2024-10-13-B fd 重定向 缓冲区

1 一切皆文件 1.1 虚拟文件系统 在系统层面&#xff0c;做了一层软件的封装&#xff0c;struct file 里有操作表&#xff08;即函数指针的集合&#xff09;&#xff0c;可以调用底层的读写方法。虚拟文件系统&#xff08;VFS&#xff09;是一种神奇的抽象&#xff0c;它使得…

Metasploit使用

最近在学Metasploit&#xff0c;Metasploit是一个免费的、可下载的渗透测试框架&#xff0c;通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击&#xff0c;是一个集成了渗透测试全流程的渗透工具。 图一 模块&#xff1a;模块组织按照不同的用途分为7种类型的模块 &am…

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…

MongoDB集群的介绍与搭建

MongoDB集群的介绍与搭建 一.MongoDB集群的介绍 注意&#xff1a;Mongodb是一个比较流行的NoSQL数据库&#xff0c;它的存储方式是文档式存储&#xff0c;并不是Key-Value形式&#xff1b; 1.1集群的优势和特性 MongoDB集群的优势主要体现在以下几个方面&#xff1a; (1)高…