5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。
Cookie-Based认证
认证流程
我们先看下传统Web端的认证流程:
以上流程很简单,有过mvc开发经验的都了如指掌,一图胜千言就不展开介绍了,下面简单演示一下实现:
编码实现
首先我们新建一个mvc项目
我们在AdminController.cs里增加[Authorize]
在Startup.cs中
这时候我们访问https://localhost:5001/Admin/Index后台会跳转到Account/Login
所以我们要先登陆一下:https://localhost:5001/account/login,模拟登陆,最后再访问Admin/Index就成功了,如下图:
整个过程,我录个视频看下:
JWT认证
简介和使用场景
Cookie-Based认证不是我们这篇文章的重点,接下来我们来看下JWT(JSON Web Token)认证,关于这个认证网上资料也非常多。这里有Catcher有篇不错的文章参考,这里还有一个JWT的官网值得关注和简书是的参考(跳转)。
相对以往的文章,我会吸其精华整理后变成我系列的一部分,我知道重复是危险的,但是不去整理,似乎离系统化还是有那么一点点距离。所以我写的这篇不是重复造轮子,我会尽可能站在您的角度,考虑阅读的舒服性,理解的便捷性。也许你会觉得简单粗暴,一看就懂,那就有那么点意义。其实我觉得技术文章其实也可以不用长篇大论,重点是要能把简单的道理用深入浅出的方式让大家快速接受。
JWT一般用在基于RESTful API的移动端、Web端、其他端等多个终端的联合认证。和Cookie-Based认证最大的不同是,他不需要手动来重定向,API只返回标准的HTTP Code,具体有哪些Code,我们可以查看阮一峰大哥的RESTful API设计指南和RESTful API最佳实践。这里扯远了,我们看下图流程,基本就知道JWT的机制了。
关于JWT我们掌握它的Header、Payload、Signature三段部分就差不多了,如下图所示:
我们看到左边的Token的是怎么来的,右边的SIGNATURE经过多重加密进行拼接,其中HEADER和PAYLOAD进行了BASE64位加密,然后+256位的Secret,外层再用SHA256进行加密。
编码实现
接下来我们编码来实现这个认证:
1) 首先我们新建JSON配置和对应的实体映射。
2)在Starup.cs当中,我们需要引入类库
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.IdentityModel.Tokens; using System.Text;
3)同时在Starup.cs中,通过Bind方法进行配置和实体的绑定,然后配置JWT相关参数。如下图所示:
4)最后别忘记配置权限管道
5)我们再看看加和不加Authorize的浏览器返回的区别,如下图所示:
以上代码大部分是截图,截图看起来更加顺眼,虽然不方便复制,如果你想看完整代码可以访问我的GitHub地址
希望以上分享对你有帮助,我是IT人张飞洪,入行10年有余,人不堪其忧,吾不改其乐,谢谢您关注。
5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」相关推荐
- 5.3Role和Claims授权「深入浅出ASP.NET Core系列」
5.3Role和Claims授权「深入浅出ASP.NET Core系列」 原文:5.3Role和Claims授权「深入浅出ASP.NET Core系列」 希望给你3-5分钟的碎片化学习,可能是坐地铁. ...
- 5.2基于JWT的令牌生成和定制「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Token生成 我们知道一旦我们给API添加[Authorize] ...
- ASP.NET Core WebAPI中使用JWT Bearer认证和授权
为什么是 JWT Bearer ASP.NET Core 在 Microsoft.AspNetCore.Authentication 下实现了一系列认证, 包含 Cookie, JwtBearer, ...
- GitHub开源项目学习 电商系统Mall (四) mall整合SpringSecurity和JWT实现认证和授权(一)
mall整合SpringSecurity和JWT实现认证和授权(一) https://github.com/macrozheng/mall 跳过了官方Learning中较简单的Swagger-UI的实 ...
- 商城项目(三)整合SpringSecurity和JWT实现认证和授权
整合SpringSecurity和JWT实现认证和授权 环境搭建 SpringSecurity JWT Hutool 项目使用表说明 ums_admin:后台用户表 ums_role:后台用户角色表 ...
- GitHub开源项目学习 电商系统Mall (五) mall整合SpringSecurity和JWT实现认证和授权(二)
mall整合SpringSecurity和JWT实现认证和授权(二) https://github.com/macrozheng/mall 登录注册功能实现 UmsAdminController类 实 ...
- 实践剖析.NET Core如何支持Cookie滑动过期和JWT混合认证、授权
[导读]为防止JWT Token被窃取,我们将Token置于Cookie中,但若与第三方对接,调用我方接口进行认证.授权此时仍需将Token置于请求头,通过实践并联系理论,我们继续开始整活 首先我们实 ...
- SpringBoot+SpringSecurity+JWT实现认证和授权
SprinBoot 系列文章: Spring Boot入门之Hello Spring Boot SpringBoot 配置多个JdbcTemplate SpringBoot 整合Mybatis CAS ...
- Springboot整合shiro基于url身份认证和授权认证
你还不会shiro吗? 前奏 shiro核心配置文件(rolesFilter可选). 身份认证 多表登录源如何操作? 授权管理 如何解决界面多角色/资源问题 访问效果 权限管理在日常开发中很重要,所以 ...
最新文章
- 二丶Linux安装xdd-plus教程及必备依赖的安装+青龙对接xdd
- mysql中的索引对查询的影响
- 后盾网lavarel视频项目---lavarel中的tinker是什么
- CENTOS编译安装APACHE 2.4.6笔记
- github上java_GitHub上Java的Bloom Bloom实现
- android 面试总结,后续注意学习
- java线程堆栈_深入JVM剖析Java的线程堆栈
- pythonfor循环语句例子_简单的python循环知识
- 大数据之-Hadoop环境搭建_hadoop官网手册---大数据之hadoop工作笔记0020
- 百度服务器临时文件多久一删,百度站长提醒:11月9日前尽快删除超出站点配额的历史sitemap文件...
- Oracle DBHelper 第二版
- openresty 前端开发入门一
- automake生成静态库文件_gcc编译工具生成动态库和静态库之一----介绍
- 2007版的office软件下载及简介
- 模仿实现百度搜索黑洞动画效果
- python持续集成工具_21 个好用的持续集成工具,总有一款适合你
- 这里有20万个虎年微信红包封面免费领取!
- WORD里的拼页、书籍折页、反向书籍折页功能(一)
- ps 的一些常见的键位技巧
- 什么是正定矩阵,什么是负定矩阵?判别方法
热门文章
- mybatis02映射动态sql关联查询spring整合mybatis
- ext4 文件系统的优化
- Exchange 2010 EMC 删除 DisconnectedMailbox
- Unity 播放音频文件
- 自己动手写一个印钞机 第四章
- Python机器学习入门资料整理
- This Android SDK requires Android Developer Toolkit version 22.6.2 or above.
- Ubuntu安装nodeJS
- 最新行政区划编码数据
- 求长度的另一种方法(+obj).Length