JSON Web Token(JWT)学习

入门教程

JSON Web Token 入门教程 - 阮一峰

JSON Web Token 入门教程 - 阮一峰

补充

  • JWT认证流程:

    img
    1、用户使用用户名密码来请求服务器
    2、服务器进行验证用户的信息
    3、服务器通过验证发送给用户一个token
    4、客户端存储token,并在每次请求时附送上这个token值
    5、服务端验证token值,并返回数据

  • JWT实现认证的原理

    服务器在生成一个JWT之后会将这个JWT会以Authorization : Bearer JWT 键值对的形式存放在cookies里面发送到客户端机器,在客户端再次访问收到JWT保护的资源URL链接的时候,服务器会获取到cookies中存放的JWT信息,首先将Header进行反编码获取到加密的算法,在通过存放在服务器上的密匙对Header.Payload 这个字符串进行加密,比对JWT中的Signature和实际加密出来的结果是否一致,如果一致那么说明该JWT是合法有效的,认证成功,否则认证失败。

  • 适用场景

    1、用于向Web应用传递一些非敏感信息。例如完成加好友、下订单的操作等等。
    2、用于设计用户认证和授权系统。
    3、实现Web应用的单点登录。

  • JWT长什么样

    在这里插入图片描述
    在这里插入图片描述

  • 八幅漫画理解使用JSON Web Token设计单点登录系统

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 和Session方式存储id的差异

    在这里插入图片描述

SpringBoot + JWT

我参考下面的文章实现了

我的环境:

SpringBoot 2.0.4.RELEASE
java-jwt 3.4.1

<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>3.4.1</version>
</dependency>

源码:https://github.com/MRLEILOVE/springboot-jwt

参考


作者:不敲代码的攻城狮
出处:https://www.cnblogs.com/leigq/
任何傻瓜都能写出计算机可以理解的代码。好的程序员能写出人能读懂的代码。

 
原文地址:https://www.cnblogs.com/leigq/p/13406566.html