这是我参与「第五届青训营」伴学笔记创作活动的第 10 天
jwt认证的基本介绍
jwt的基本介绍
Json web token (JWT), 根据官网的定义,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).jwt的token用于用户的身份信息认证,用于获取服务器相应的一些资源,并且token有体积小的特点因此对传输效率的影响不大,而且可以通过header头等多种方法进行传输
jwt原理以及解析
jwt是对json进行加密签名来实现授权,json是由三部分组成分别是header头部,payload载荷以及其他组成,其中头部json中包含alg即加密算法,typ类别组成。而载荷主要是存放有用信息,比如iss,jwt的签发者,exp,token过期时间,userid用户的id,我们可以通过解析token拿到一些有效信息,所以token不仅仅有认证作用同样也有携带信息的作用,但是由于载荷部分可以很轻易的被解析所以说不能存放敏感的信息。最后还有signature签名,这个是用算法得到的一个签名的字符串,它只能在服务端进行解密,所以说这个是jwt中保证数据安全的一个很重要的部分,它可以防止token的信息被恶意篡改。
jwt认证流程
首先用户会向服务端进行请求,服务端收到之后会根据相关信息进行生成一个token然后返回给到前端,前端再进行存储,当需要认证时将token传回到后端进行认证,后端解析token之后进行认证,成功就可以返回资源到前端
加密算法
jwt加密有很多种算法常见的有对称加密和非对称加密,对称加密有唯一的key如果说key泄露就会造成token的不安全,非对称加密则有一个公钥一个私钥即使公钥泄露只要保证私钥安全那token就是安全的。