.NET Core WebAPI集成JWT,实现身份验证
admin
2023-02-15 07:40:06
0

前两篇文章给大家介绍了在.NET Core中如何使用Swagger的文章,那今天给大家分享一下JWT

在做接口开发的同学可能都有感受,我的接口如何保护的问题,如果没有身份验证,那不是接口完全暴露在外面,任意使人调用,这显然不是我们想要的一种结果。当然做身份验证的方式有多种,今天给大家讲一种比较流行了,标准的身份验证JWT

什么是JWT?
.NET Core WebAPI集成JWT,实现身份验证

随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。

JWT的结构体是什么样的?

JWT由三部分组成,分别是头信息、有效载荷、签名,中间以(.)分隔

(1)header(头信息)

由两部分组成,令牌类型(即:JWT)、散列算法(HMAC、RSASSA、RSASSA-PSS等)

(2)Payload(有效载荷)

JWT的第二部分是payload,其中包含claims。claims是关于实体(常用的是用户信息)和其他数据的声明,claims有三种类型: registered, public, and private claims。

Registered claims: 这些是一组预定义的claims,非强制性的,但是推荐使用, iss(发行人), exp(到期时间), sub(主题), aud(观众)等;

Public claims: 自定义claims,注意不要和JWT注册表中属性冲突

Private claims: 这些是自定义的claims,用于在同意使用这些claims的各方之间共享信息,它们既不是Registered claims,也不是Public claims。

(3)Signature

要创建签名部分,必须采用编码的Header,编码的Payload,秘钥,Header中指定的算法,并对其进行签名。

JWT使用流程:
.NET Core WebAPI集成JWT,实现身份验证

JWT在.NET Core项目中的具体用法:

(1)在ConfigureServices方法中添加JWT相关代码:
.NET Core WebAPI集成JWT,实现身份验证

(2)在Configure方法中添加JWT代码:

.NET Core WebAPI集成JWT,实现身份验证

(3)创建一个JWT服务类:
.NET Core WebAPI集成JWT,实现身份验证

(4)在接口类或方法上标记身份验证:

.NET Core WebAPI集成JWT,实现身份验证

到此为止,JWT的基本用法就结束,非常简单和方便,接下来我们用postman测试一下JWT是否生效:

(1)当我们在不登录的情况下,访问接口看看是什么现象:

.NET Core WebAPI集成JWT,实现身份验证

我们发现接口返回提示:401 Unauthorized

(2)我们先调用登录接口,先计算得到token,然后再来请求试试:
.NET Core WebAPI集成JWT,实现身份验证

登录成功后,接口返回了token值
.NET Core WebAPI集成JWT,实现身份验证

(3)将token复制粘贴到下方,请求业务接口,成功调用:

.NET Core WebAPI集成JWT,实现身份验证

相关内容

热门资讯

原创 A... 2026 年 4 月,知名产业链分析师郭明錤发布重磅报告:OpenAI正加速研发自研智能手机,以 A...
原创 怎... 你是不是也有过这样的疑惑:明明换了新手机,套餐也升级了,但总感觉网速没快到哪儿去,心里直犯嘀咕——我...
聚力未来通信!成都6G联盟成立 4月28日下午,成都6G联盟成立大会在成都民营经济发展促进中心举行。产业链上下游企业代表、行业专家学...
累计亏损800亿美元,Meta... IT之家 5 月 2 日消息,当地时间 5 月 1 日,据《财富》杂志报道,Meta 第一季度业绩本...
万鑫AI:AI交易大模型驱动下... 在全球金融市场进入高波动、高联动与高智能化并行发展的新阶段后,交易体系的竞争逻辑正在发生明显变化,传...
原创 赛... 2026 年 5 月 5 日,赛力斯股价突发暴跌,盘中跌幅超 6%,市值单日蒸发超百亿,# 赛力斯跌...
杭州博洲电器取得贴片电阻测试治... 国家知识产权局信息显示,杭州博洲电器有限公司取得一项名为“一种贴片电阻测试治具”的专利,授权公告号C...
智聚当下 共启新章——京口区举... 为抢抓人工智能发展新机遇,加快培育新质生产力,推动区域产业数智化转型与高质量发展,4月30日下午,京...
佐林电器取得可调式永磁阻尼器专... 国家知识产权局信息显示,上海佐林电器有限公司取得一项名为“一种可调式永磁阻尼器”的专利,授权公告号C...
原创 i... 苹果罕见的在五一最后一天发布了双系统,分别是iOS18.7.9和iOS26.5RC准正式版,加上之前...