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里. 系统只要找到 ...
随机推荐
- 我的Android进阶之旅------>Android编译错误java.util.zip.ZipException: duplicate entry的解决方法
今天在Android Studio中把另外一个项目引入当前项目,编译的时候出现了java.util.zip.ZipException: duplicate entry错误. 错误例如以下所看到的: F ...
- Tomcat最多支持并发多少用户?
当一个进程有 500 个线程在跑的话,那性能已经是很低很低了.Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大.当某个应用拥有 250 个以上并发 ...
- mktemp temp race attack 临时文件隐患
/tmp 安全隐患 -/tmp 在家目录 程序目录下 创建 临时文件
- Oracle修改序列(Sequence)起始值问题
Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改 ...
- 《31天成为IT服务达人》--做事篇(第四章)之如何找目标
前面介绍了什么是IT服务.以下几章将介绍IT服务该怎么做.在聊怎么做之前.想起几句流行的告白和准备入行IT服务事业的朋友共勉. 当你的才华 还撑不起你的野心时 就应该静下心来 学习 --- 当你 ...
- camera闪光灯校准
1. adb shell 2. setprop z.flash_ratio 1 3. 全黑环境下,请将手机固定,对着白墙10cm,固定. 4. 点击拍照,然后手机会自动打闪2(Duty num)次(其 ...
- YTU 2441: C++习题 复数类--重载运算符2+
2441: C++习题 复数类--重载运算符2+ 时间限制: 1 Sec 内存限制: 128 MB 提交: 847 解决: 618 题目描述 定义一个复数类Complex,重载运算符"+ ...
- YTU 2596: 编程题B-日期格式
2596: 编程题B-日期格式 时间限制: 1 Sec 内存限制: 128 MB 提交: 981 解决: 74 题目描述 注:本题只需要提交编写的函数部分的代码即可. 将输入的日期格式 月/日/年 ...
- JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);
JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回out.print(ja);
- 使用C#开发HTTP服务器系列之实现Get和Post
各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.在我们这个Web服务器有了一个基本的门面以后,我们是时候来用它做点实际的事情了.还记得我们 ...