.net9.0 JWT AUTH2.0 添加身份认证授权

news/2025/10/11 12:13:49/文章来源:https://www.cnblogs.com/jechsky2024/p/19134714

1、添加 Microsoft.AspNetCore.Authentication.JwtBearer 包(9.0.9)

2、
添加类
public class TokenParameter
{
public const string Issuer = "aa";//颁发者
public const string Audience = "bb";//接收者
public const string Secret = "1234567891234567978912345678912345679789";//签名秘钥
public const int AccessExpiration = 30;//AccessToken过期时间(分钟)
}

3、添加获取token的接口
///


/// 获取Token
///

///
[HttpGet]
[Route("token")]
public ActionResult GetAccessToken(string username, string password)
{
//这儿在做用户的帐号密码校验。我这儿略过了。
if (username != "admin" || password != "admin")
return BadRequest("Invalid Request");

 var claims = new[]{new Claim(ClaimTypes.Name, username),new Claim(ClaimTypes.Role, ""),

};

 var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(TokenParameter.Secret));var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);var jwtToken = new JwtSecurityToken(TokenParameter.Issuer, TokenParameter.Audience, claims, expires: DateTime.UtcNow.AddMinutes(TokenParameter.AccessExpiration), signingCredentials: credentials);var token = new JwtSecurityTokenHandler().WriteToken(jwtToken);return Ok(token);

}

4、注入service

builder.Services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,//是否调用对签名securityToken的SecurityKey进行验证
IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(TokenParameter.Secret)),//签名秘钥
ValidateIssuer = true,//是否验证颁发者
ValidIssuer = TokenParameter.Issuer, //颁发者
ValidateAudience = true, //是否验证接收者
ValidAudience = TokenParameter.Audience,//接收者
ValidateLifetime = true,//是否验证失效时间
};
});

//添加身份认证中间件
app.UseAuthentication();
在app.UseAuthorization();前

5、添加认证接口
[HttpGet("{id}")]
[Authorize]
public ContentResult todo(int id)
{
return Content("okk");
}

测试:
直接访问授权的接口
image

获取token
image

token加入到header bear中
image

测试成功!
image

下载项目
https://files.cnblogs.com/files/blogs/815970/JWTAUTH.rar?t=1760155737&download=true

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

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

相关文章

实用指南:同时使用ReactUse 、 ahooks与性能优化

实用指南:同时使用ReactUse 、 ahooks与性能优化2025-10-11 12:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displa…

解决vscode中用npm报错

在终端运行npm run serve显示 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本 看一些网友建议说用管理员身份运行vscode,打开后问题仍未解决。 准备参考https://blog.csdn.net/weixin_48475651/a…

MATLAB复杂曲线曲面造型及导函数实现

一、复杂曲线曲面造型方法 1.1 样条插值技术 1.1.1 Catmull-Rom样条数学原理:通过控制点构建分段三次多项式曲线,保证切线连续性MATLAB实现: function p = catmull_rom(p0,p1,p2,p3,nPoints)dt = 1/(nPoints-1);t =…

2025 年最新月嫂培训机构推荐榜单:短期 / 精英 / 金牌 / 高端月嫂培训及就业推荐,精选优质机构

随着母婴护理需求的持续攀升,月嫂行业成为热门职业选择,各类月嫂培训机构也如雨后春笋般涌现。但当前市场乱象频发,部分机构课程体系不完善、实操训练不足,导致学员毕业后难以胜任工作;还有机构以 “高薪就业”“…

【C++实战㊳】C++单例模式:从理论到实战的深度剖析 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

OOP-实验一

实验任务1 源代码 #include <iostream> #include <string> #include <vector> #include <algorithm>template<typename T> void output(const T &c);void test1(); void test2(); v…

达梦使用jemalloc内存分配器

下载和安装jemalloc内存分配器 wget https://github.com/jemalloc/jemalloc/archive/5.2.1.tar.gz tar -xzvf 5.2.1.tar.gz cd jemalloc-5.2.1/ yum -y install autogen autoconf yum install -y gcc gcc-c++ ./autoge…

2025 年深圳/龙岗/龙华/罗湖/南山/旧房翻新/出租房/二手房/老房/装修公司推荐:聚焦品质与服务,助您轻松焕新家

随着居民生活品质提升、存量房市场扩容及消费观念升级,家庭装修需求正从 “基础装修” 向 “品质焕新” 转变,2025 年深圳地区家装市场规模预计持续增长。但市场繁荣也带来企业资质、工艺水平、服务能力参差不齐的问…

基于Python的FastAPI后端开发框架如何使用PyInstaller 进行打包与部署

基于Python的FastAPI后端开发框架如何使用PyInstaller 进行打包与部署我在随笔《WxPython跨平台开发框架之使用PyInstaller 进行打包处理》中介绍过如何使用PyInstaller 进行打包处理的一些过程和事项。我们基于Python…

推荐AI编程项目——MonkeyCode用自然语言就能生成完整可部署应用

推荐AI编程项目——MonkeyCode用自然语言就能生成完整可部署应用在2025年的今天,软件开发已经不再是少数技术专家的专利。随着AI技术的飞速发展,编程正在变得越来越平民化。而在这股浪潮中,有一款工具正在重新定义我…

2025 年中频炉厂商最新推荐排行榜权威发布,深度剖析应达电气等优质企业核心优势及选购要点节能/智能/自动化成套/高效率/智能感应加热中频炉厂家推荐

当前,中频炉作为冶金、熔炼、机械制造等工业领域的关键设备,其性能优劣直接关系到企业生产效率、成本控制与环保达标情况。随着国家节能减排政策的深化推进以及产业升级加速,市场对节能、智能、自动化的中频炉需求激…

2025 年气体/实验室/调压/气路/减压阀厂家推荐榜:聚焦安全与专业,助力各行业精准选品

随着工业制造升级、实验室建设规范化及新能源产业快速发展,气体减压阀作为特气供气系统的核心组件,已成为电子半导体、生物医药、新能源、科研院所等领域的关键设备。2025 年气体减压阀市场需求持续增长,但市场上产…

详细介绍:Day52 串口通信原理与IMX6ULL UART驱动开发

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

摸鱼混子回归 - ZERO

2025年10月11日,11:44。 前一段时间一直在跑实验,跑的稀巴烂,今天彻底收尾结束。 开始刷论文,进入无限循环模式。 (无奈但妥协.jpg)

vue3实现抓拍并上传

<template><video ref="videoRef" autoplay playsinline></video><canvas ref="canvasRef" class="hidden"></canvas><button @click="capture&…

2025 年国内润滑油厂商最新推荐榜:聚焦优质品牌实力,助力企业精准选品润滑油净化/过滤/回用/液压油润滑油过滤厂商推荐

当前工业领域对润滑油的需求持续增长,但市场上供应商资质不一、产品质量参差不齐的问题愈发凸显。部分企业在采购时面临产品缺乏溯源、适配性不足、服务响应滞后等难题,不仅增加设备运维成本,还可能因油品问题导致生…

纯前端实现项目过期

项目过期逻辑 /*** 项目有效期检查工具* 设置项目在指定日期后无法访问*/// 设置过期日期为2024年10月30日 const EXPIRY_DATE = new Date(2025-10-30 23:59:59)/*** 检查项目是否已过期* @returns {boolean} true表示…

基于形态学的权重自适应图像去噪的MATLAB实现

classdef MorphologicalAdaptiveDenoising% 基于形态学的权重自适应图像去噪类% 支持灰度图像和彩色图像的去噪propertiesstructuring_elementsalphabetaiterationsendmethodsfunction obj = MorphologicalAdaptiveDen…

2025 年油水分离器 / 气液分离器 / 液固分离器 / 水分离器 / 油分离器厂家推荐:西安同大技术沉淀与流体净化解决方案解析

2025 年分离设备行业迎来技术迭代与市场扩容期,全球市场规模已突破 1200 亿美元,中国贡献占比超 35%,成为推动行业发展的核心力量。化工、石油、天然气等领域对分离效率、工况适配性的要求持续升级,合成氨、甲醇、…