美文网首页
JWT相关学习(纯天然手写)

JWT相关学习(纯天然手写)

作者: 海水味儿 | 来源:发表于2019-01-07 16:09 被阅读0次

JWT(Json Web Token)是一种token认证方式,相对于传统的session认证方式。

一、为什么需要认证?

一个系统,如果想使用其功能,势必要进行登录操作,登录验证用户名和密码,通过http通讯协议传输,但是HTTP协议属于无状态协议,则登录之后的http通讯如果没有认证,那么任何未登录的人都可以去访问了。所以需要认证这种方式来杜绝这样的事情发生。

二、传统session认证方式有如下几个缺点:

1、用户登录后session需要存储在服务端中,当有大量用户登录时候,服务端会存储大量的session,缺点就是占用大量资源。

2、服务端session存储位置如果为内存,则会影响负载均衡。

3、客户端将session存放在cookie中,如果其他人获得cookie,则可进行伪造。

三、jwt的优点

1、服务端无需存储jwt,不需要占用大量资源。

2、jwt为json格式,占用流量小。

3、因为无状态不存储,所以完全不影响负载均衡。

四、JWT说明:

JWT分为三部分,head(头),payload(载荷)以及签名。

其中头head写明算法类型(大部分为固定)并且使用Base64进行编码,载荷payload存放传输的信息并且使用Base64进行编码,对于我们系统来说是JwtUser这个对象的JSON形式字符串以及失效时间(我们系统当前为24小时)。

签名就是讲上述head和payLoad进行Base64的字符串连接以后,加盐,组合加密,其中盐是存放在服务端里,对于我们系统来说,是服务端配置文件中存储,

最后的结果就是   head头的Base64编码结果 + ‘,’ + payLoad的Base64编码结果 + ',' + 签名。

五、实现方式:

使用jjwt来进行实现(代码以及quickStart可以在GITHUB上查看)

六、传输方式:

客户端http协议调用接入,接入系统RPC协议调用账户系统,账户系统如果登录成功,则生成jwt返回给接入系统,接入系统将jwt字符串返回给客户端,客户端以后每次对于该用户的http调用都在http请求头信息中添加此jwt字符串。接入收到jwt之后,进行解析,如果解析出错则异常抛出不予操作。如果JWT正常,则继续操作。

参考资料:http://www.jianshu.com/p/576dbf44b2ae

相关文章

  • JWT相关学习(纯天然手写)

    JWT(Json Web Token)是一种token认证方式,相对于传统的session认证方式。 一、为什么需...

  • 玩转 SpringBoot 2 之整合 JWT 下篇

    前言 在《玩转 SpringBoot 2 之整合 JWT 上篇》 中介绍了关于 JWT 相关概念和JWT 基本使用...

  • 虾皮二面:什么是 JWT? 如何基于 JWT 进行身份验证?

    分享一下群友面试虾皮遇到的关于 JWT 的面试真题。 相关面试题如下: 什么是 JWT?为什么要用 JWT? JW...

  • 前端鉴权和缓存相关收藏

    Auth2鉴权 JWT cookie-session 缓存相关

  • jwt学习

    jwt是如何验证的? jwt保存在客户端,每次请求时都将其放在header中,这样服务器接收到请求后,取出jwt进...

  • jwt 学习

    安全认证 [TOC] 库 CORS:解决跨域问题 https://github.com/expressjs/cor...

  • JWT 学习

    前言 在实际测试网站时多次遇到JWT认证,赶紧把这块知识点通过CTF题目的方式补上。 JWT 定义 JWT 全称是...

  • Make jwt great again

    jwt,全称json-web-token.其安全问题一直以来众所周知。CTF中也经常性的会出现相关的jwt伪造的题...

  • JsonWebToken

    JWT (JsonWebToken) JWT官网['https://jwt.io/'] JWT简介 1.JWT(J...

  • jwt相关介绍及使用

    JWT:JSON Web Token是目前最流行的跨域认证解决方案,用户身份的认证以前我们都是怎么做的呢,一般步骤...

网友评论

      本文标题:JWT相关学习(纯天然手写)

      本文链接:https://www.haomeiwen.com/subject/dmwurqtx.html