JWT认证阐述
脚本后续更新及迭代将由kkitDeploy项目代替
https://github.com/luckman666/kkitdeploy_server
请大家持续关注kkitDeploy
哥发达了,是时候实现一下儿时的梦想了,怡红院开起!

店面门脸装修如何?做生意,谁还没个镇店之宝啊?有请我的店长如花小姐!

没事哈!别怕,扭曲的五官往往都藏着一颗纯洁的心灵。
不管如何吧,我的怡红院算是开起来了。
附近各大有名的英俊才子,达官贵人,地痞流氓啥的蜂拥而至。火爆异常,由于我没有开店经验。过大的客流导致了一个问题。

“”哎呀老板呀!你是有所不知道呀!咱们店那可是贵宾旗舰店。那能让人随便进呀?所以要对每一个顾客进行登记,留存他们的信息,这样才能在他们进了咱们店之后,根据他们留的信息找到他们。所以大家都得排队登记哦!“
“哪不对呀,我看王公子刚才不是已经登记过了嘛?咋又跑前台去了?”
如花回到:“王公子,刚才出去了一趟,在出去的时候我们给了他一个临时暗号,他再进来的时候呢需要到前台报暗号,然后我们根据暗号翻账本找他的信息。所以他还得去前台核实身份信息!”
“what?老子开店是让顾客消费的,而你们却让顾客来回登记玩?赶紧给我想办法解决这个问题。”
这时,店内的一个新来的小职员说了:“老板我们何不给每个顾客定制一个VIP会员卡?把顾客的信息都记录在这个卡里面,然后顾客第一次来的时候就发放给他,以后他再来凭这个VIP卡就可以进店,无需登记啦!”,这小子是我年初招来的叫劲舞团,名字太怪了,我们还是简称叫他JWT吧!
“你这小屁孩,就瞎说,那万一顾客把卡借给别人呢?”如花愤愤的说到。如花是老员工从业经验丰富,这句话说得确实没错。
“哦!~没关系我这几天就在研究咱们店的情况,所以呢?我专门设计了这种VIP卡,二位还请慢慢听我说。”JWT慢条斯理的说。
这种卡分内的信息分三部分组成。
1、头部(Header):
算法名称和tocken类型
2、有效存储区(Payload):
这里面呢存储用户的相关信息,用户名啊,性别呀,年龄呀等等吧
3、防伪logo(Signature)
这里是根据前两个声明的信息,按照声明的方法,然后我们再混里咱们店独有的配方加密。保证别人都看不懂,只有我们店才能看懂。
拿一张图来说明吧!

“看到没?右侧就是那三部分的示例。
然后我们再设定这张卡的有效期,多久之后还得重新签发一次哦,这样就没问题啦,顾客在卡有效期内就不用老去前台啦!“JWT兴奋的说到。
如花被JWT如上一说也是沉吟许久没有说话。
“明天你全权负责这套认证机制,保证我们店顾客不要因为排队而放弃来我们店消费的念头”我对JWT说。
“谢谢老板,我马上就去办”JWT得到我的首肯后一溜烟的跑了。
上面这个故事就是我要对各位说的关于传统认证和JWT认证的区别:
由于http是无状态的,传统方式如何区别谁来了?谁走了呢?
1、传统认证客户端信息保留在服务器端的内存中,这里就是我们说的session,客户端下次再来需要拿着sessionID去内存查询相关信息。记得那个可怜的王公子嘛?他就是!而上面的前台客户及时我们说的服务器端的内存。
缺点:这样做的毛病就是客户端信息都放在服务器内存中,服务器不光要提供相关资源还得存储客户端信息。当数据越来越多的时候就会臃肿无比。这就是咱们常说的设计上的热点!
JWT就不一样了:当客户端第一次携带用户名密码请求认证成功后,会返回给他一个tocken。里面有其加密过后的对于该客户端描述信息。在以后访问任何接口只需要在API后边携带该tocken就可以正常使用其API了
我再写第三版devops时就是用的JWT认证方式,为了让大家看的更清晰我再上两个图:
首先访问loginAPI:

因为用的rest_framework写的,所以自带的API调试界面
然后我们输入正确的用户名密码,进行认证
再看上面的返回值:

这个tocken值就是上面那个JWT说的VIP会员卡。分三部分哦!每个部分有一个点分开:
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6InJvb3QiLCJleHAiOjE1NTc1NDYzMTgsImVtYWlsIjoiMTIzQDEyMy5jb20ifQ.JRfA0t_Ft5229Bvg5gioLk2uoQ-0L30sl3MKGAqR_IQ"
至于每部分是什么?小职员JWT已经替我说清楚了。
行啦小伙伴们,是不是对JWT有了一定的了解呢?
我还没吃饭呐!先闪了!
记得来我店里玩哈!
关注公众号:

JWT认证阐述的更多相关文章
- 使用python实现后台系统的JWT认证(转)
今天的文章介绍一种适用于restful+json的API认证方法,这个方法是基于jwt,并且加入了一些从oauth2.0借鉴的改良. 1. 常见的几种实现认证的方法 首先要明白,认证和鉴权是不同的.认 ...
- sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证
一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的 ...
- Asp.Net Core基于JWT认证的数据接口网关Demo
近日,应一位朋友的邀请写了个Asp.Net Core基于JWT认证的数据接口网关Demo.朋友自己开了个公司,接到的一个升级项目,客户要求用Aps.Net Core做数据网关服务且基于JWT认证实现对 ...
- Laravel 中使用 JWT 认证的 Restful API
Laravel 中使用 JWT 认证的 Restful API 5天前/ 678 / 3 / 更新于 3天前 在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...
- JWT 认证 以及Django 中的应用
jwt 认证 私钥.公钥.CA认证 用一套加密规则 加密和解密 RSA加密 (非对称的加密) 摘要算法:MD5 FTP/互联网下载软件校验MD5 私钥 --RSA算法-->公钥 RSA原理 加密 ...
- asp.net core 自定义401和异常显示内容(JWT认证、Cookie Base认证失败显示内容)
asp.net core 2.0使用JWT认证园子里已经有挺多帖子了,但开发中发现认证未授权情况下返回的401状态码是没有任何信息的,业务中可能有需要返回一串错误的Json信息.在这里我分享一个自定义 ...
- Asp.net Core认证和授权:JWT认证和授权
JWT验证一般用户移动端,因为它不像cookie验证那样,没有授权跳转到登陆页面 JWT是json web token的简称,在 jwt.io 网址可以看到 新建一个API项目,通过postman ...
- 如何简单的在 ASP.NET Core 中集成 JWT 认证?
前情提要:ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统 文章超长预警(1万字以上),不想看全部实现过程的同学可以直接跳转到末尾查看成果或者一键安装相关的 nuget 包 自上一 ...
- 把旧系统迁移到.Net Core 2.0 日记 (18) --JWT 认证(Json Web Token)
我们最常用的认证系统是Cookie认证,通常用一般需要人工登录的系统,用户访问授权范围的url时,会自动Redirect到Account/Login,登录后把认证结果存在cookie里. 系统只要找到 ...
随机推荐
- Servlet访问Javabean并传结果给jsp
1.先建立包名: 2.建立实体类 参考二维表,考虑各个字段名字.类型 在entity包里面建立一个类,代码如下: public class House { private String id; pri ...
- java反射(2)+Class.forName( )
在上一篇文章中说说java反射(1)我们已经了解了反射的基本概念以及它的原理,但是我们知道反射只能能用它来做些什么呢? 其实在我们很多已经很熟的框架中都有它的身影,例如Hibernate框架中的关联映 ...
- Linux如何查看进程等常用命令
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c 列出程序时,显示每个程序真正的 ...
- idea自定义文档注释模板
1.类注释模板 IntelliJ IDE --> Preferences --> Editor --> File and Code Templates --> Includes ...
- 调整多个控件的dock的顺序
https://stackoverflow.com/questions/2607508/how-to-control-docking-order-in-winforms Go to View -> ...
- YTU 1076: SPY
1076: SPY 时间限制: 1 Sec 内存限制: 128 MB 提交: 6 解决: 6 题目描述 The National Intelligence Council of X Nation ...
- silverlight DataGrid 显示篇
silverlight DataGrid 显示篇 分类: Silverlight2012-05-12 21:55 693人阅读 评论(0) 收藏 举报 datagridsilverlightbindi ...
- 有关使用HTTP协议传输二进制文件
HTTP协议是基于字符(ASCII)的,当Content-Type项为text/xml,则内容是文本格式:当二进制格式时,Content-Type项为image/gif,就是了.例如,浏览器请求一张图 ...
- bzoj 2169 连边 —— DP+容斥
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2169 就和这篇博客说的一样:https://blog.csdn.net/WerKeyTom_ ...
- bzoj 2508: 简单题【拉格朗日乘数法】
大概是对于f(x,y)求min,先把x看成常数,然后得到关于y的一元二次方程,然后取一元二次极值把y用x表示,再把x作为未知数带回去化简,最后能得到一个一元二次的式子,每次修改这个式子的参数即可. 智 ...