脚本后续更新及迭代将由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认证阐述的更多相关文章

  1. 使用python实现后台系统的JWT认证(转)

    今天的文章介绍一种适用于restful+json的API认证方法,这个方法是基于jwt,并且加入了一些从oauth2.0借鉴的改良. 1. 常见的几种实现认证的方法 首先要明白,认证和鉴权是不同的.认 ...

  2. sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证

    一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的 ...

  3. Asp.Net Core基于JWT认证的数据接口网关Demo

    近日,应一位朋友的邀请写了个Asp.Net Core基于JWT认证的数据接口网关Demo.朋友自己开了个公司,接到的一个升级项目,客户要求用Aps.Net Core做数据网关服务且基于JWT认证实现对 ...

  4. Laravel 中使用 JWT 认证的 Restful API

    Laravel 中使用 JWT 认证的 Restful API 5天前/  678 /  3 / 更新于 3天前     在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 r ...

  5. JWT 认证 以及Django 中的应用

    jwt 认证 私钥.公钥.CA认证 用一套加密规则 加密和解密 RSA加密 (非对称的加密) 摘要算法:MD5 FTP/互联网下载软件校验MD5 私钥 --RSA算法-->公钥 RSA原理 加密 ...

  6. asp.net core 自定义401和异常显示内容(JWT认证、Cookie Base认证失败显示内容)

    asp.net core 2.0使用JWT认证园子里已经有挺多帖子了,但开发中发现认证未授权情况下返回的401状态码是没有任何信息的,业务中可能有需要返回一串错误的Json信息.在这里我分享一个自定义 ...

  7. Asp.net Core认证和授权:JWT认证和授权

    JWT验证一般用户移动端,因为它不像cookie验证那样,没有授权跳转到登陆页面 JWT是json web token的简称,在  jwt.io 网址可以看到 新建一个API项目,通过postman ...

  8. 如何简单的在 ASP.NET Core 中集成 JWT 认证?

    前情提要:ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统 文章超长预警(1万字以上),不想看全部实现过程的同学可以直接跳转到末尾查看成果或者一键安装相关的 nuget 包 自上一 ...

  9. 把旧系统迁移到.Net Core 2.0 日记 (18) --JWT 认证(Json Web Token)

    我们最常用的认证系统是Cookie认证,通常用一般需要人工登录的系统,用户访问授权范围的url时,会自动Redirect到Account/Login,登录后把认证结果存在cookie里. 系统只要找到 ...

随机推荐

  1. linux入门基础——linux软件管理RPM

    由于linux入门基础是基于CentOS解说的,讲的是CentOS上的软件包管理.ubuntu的软件包管理有这些:ubuntu软件包管理,包管理指南,ubuntu软件包管理. linux软件管理:RP ...

  2. 纯JS写的一款记录事项的单页应用

    要点: 1.使用localStorage存储 2._change_record_progress函数以字符串作为参数,用eval执行这个参数 3.使用了jQuery自定义事件,便于数据改变时实时更新显 ...

  3. C语言变长数组data[0]总结

    C语言变长数组data[0] 1.前言 今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内 ...

  4. api多版本方案(URL)

    api多版本方案(URL) 1.利用url https://www.taofen8.com/api/v2/getXXX 2.利用自定义请求头 api-version https://www.taofe ...

  5. jdbc 连 oracle 12c

    jdbc 连 oracle 12c,除了连接串要书写正确(如果用PDB,可插拔数据库),必要的JDBC包也是不可或缺的. 比如我,机器本身装了个oracle 10g,然后上面有个java项目,使用jd ...

  6. GrideView(二)---删除功能

    情景一. 没有外键关联, 操作:在数据源中将删除选项选中--- GrideView 中的删除 选项选中 即可情景二. 有外键关联 *RowDeleting 行删除前触发 *RowDeleted 行删除 ...

  7. 小程序-demo:小程序示例-page/component2

    ylbtech-小程序-demo:小程序示例-page/component2 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...

  8. 《MIDINET: A CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORK FOR SYMBOLIC-DOMAIN MUSIC GENERATION》论文阅读笔记

    出处 arXiv.org (引用量暂时只有3,too new)2017.7 SourceCode:https://github.com/RichardYang40148/MidiNet Abstrac ...

  9. eclipse集成lombok注解不起作用

    安装步骤: 步骤一:lombok的下载地址为:https://projectlombok.org/download,jar包很小.这里也把依赖写出来: <dependency> <g ...

  10. bzoj 1787: [Ahoi2008]Meet 紧急集合【树链剖分lca】

    对于三个点求最小路径长度和,答案肯定在某两个点的lca上,因为如果把集合点定在公共lca上,一定有两个点汇合后再一起上到lca,这样显然不如让剩下的那个点下来 这个lca可能是深度最深的--但是我懒得 ...