JWT浅讲及登录过程

JWT的名词解释就是json web token 是一种跨域认证的解决方案,它规定了一种Token实现方式。JWT是一串字符串分三个部分Header(头部)Payload(负载)Signature(签名)

JWT token就是这样的一串字符串:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyODAxODcyNzQ4ODMyMzU4NSwiZXhwIjoxNTk0NTQwMjkxLCJpc3MiOiJibHVlYmVsbCJ9.lk_ZrAtYGCeZhK3iupHxP1kgjBJzQTVTtX0iZYFx9wU

Cookie-Session模式认证流程图

在这里插入图片描述
依赖于浏览器保存在Cookie里,在服务端存储用户的session数据

Cookie : 网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息

Session : Session对象存储特定用户会话所需的属性及配置信息,这样当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

总结:JWT就是一种基于Token的轻量级认证模式,服务端认证通过后,会生成一个JSON对象,经过签名后得到一个Token(令牌)再发回给用户,用户后续请求只需要带上这个Token,服务端解密之后就能获取该用户的相关信息了

JWT的六个特点:
(1)JWT 默认是不加密,但也是可以加密的。生成原始 Token 以后,可以用密钥再加密一次。
(2)JWT 不加密的情况下,不能将秘密数据写入 JWT。
(3)JWT 不仅可以用于认证,也可以用于交换信息。有效使用 JWT,可以降低服务器查询数据库的次数。
(4)JWT 的最大缺点是,由于服务器不保存 session 状态,因此无法在使用过程中废止某个 token,或者更改 token 的权限。也就是说,一旦 JWT 签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。
(5)JWT 本身包含了认证信息,一旦泄露,任何人都可以获得该令牌的所有权限。为了减少盗用,JWT 的有效期应该设置得比较短。对于一些比较重要的权限,使用时应该再次对用户进行认证。
(6)为了减少盗用,JWT 不应该使用 HTTP 协议明码传输,要使用 HTTPS 协议传输。

登录过程 自我理解

从客户端携带账户密码给服务器,服务器调用数据库查询是否通过,如果不通过就拦截,通过则查询出user_id进行加密生成token返回给服务端进行中间件解析,传入接口,redis是近期常用,重复减轻数据库负担的操作

以上内容有很多文章的帮助这里重点的有阮一峰JSON Web Token 入门教程 https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html,哪里理解的不对欢迎评论

猜你喜欢

转载自blog.csdn.net/weixin_45765795/article/details/112637539