JWT认证登陆方式
在学习前后端分离的过程中往往遇到的第一个问题就是登陆验证问题,以前的我们将Cookie、Session、Token,在我的学习过程中认识了JWT验证方案,纯属自己理解,有错还望大佬指出。
JWT 全称是 JSON Web Token,是目前非常流行的跨域认证解决方案.
前情回顾
早期的Cookie和Session的认证方式,之前没有进行前后端分离的模式大部分使用的是Cookie-Session的认证方式,现在的未分离的项目基本也还是这种模式。
认证的大致流程就是:
用户在前端输入用户名和密码进行登陆系统。
服务端进行用户名和密码的验证,创建一个Session对象,存入内存中,并将此Session的ID返回给前端
前端存储返回的SessionID,每次请求都要带着SessionID,服务端通过SessionID进行校验。
JWT
JWT 就是一种Cookie-Session改造版的具体实现,让你省去自己造轮子的时间,JWT 还有个好处,那就是你可以不用在服务端存储认证信息(比如 token),完全由客户端提供,服务端只要根据 JWT 自身提供的解密算法就可以验证用户合法性,而且这个过程是安全的。
如果你是刚接触 JWT,最有疑问的一点可能就是: JWT 为什么可以完全依靠客户端(比如浏览器端)就能实现认证功能,认证信息全都存在客户端,怎么保证安全性?
JWT的构成
JWT 是由三段字符串和两个.组成,每个字符串和字符串之间没有换行(类似于这样:xxxxxx.yyyyyy.zzzzzz)