JWT与用户身份验证阶段练习回答
来源:11-10 【思考】阶段练习

慕少6126089
2021-08-21
1. 什么是jwt?
jwt是一种用户无状态登录机制。jwt只负责处理授权,然后将jwt信息保存在客户端。
2. jwt与session有什么区别?
传统上用户登陆状态会以session的形式保存在服务器上,同时session id也需要保存在前端cookie中;而使用jwt以后用户认证信息将会以token的形式保存在前端中,服务器不需要保存任何用户状态,所以也被叫做无状态。
3. authorization与authentication有什么区别?
用户认证authentication指的是使用用户名和密码来验证当前用户的身份,简单来说就是用户登陆。当用户登陆失败的时候,返回的错误状态码应该是401 Unauthorized(为授权)。
而用户授权authorization则指当用户登陆以后,当前用户是否有足够的权限访问特定的资源。当一个用户没有权限读取某个资源的时候,返回错误码则应该是403 forbidden(禁止访问)。
4. jwt的数据结构分为哪几个部分?
第一个部分,红色字的部分,是jwt的头部header,具体描述了你当前的jwt所使用的编码算法,用于最后一个部分数字签名的验证。
中间紫色的是第二个部分,payload,保存的就是具体的用户信息了,比如说用户id,用户名等等,这个部分的字段是可以自定义的,你可以放任何你想放的数据都没问题。这里有一个字段叫做iat,是英文“issue at”的缩写,使用的是一个时间戳,代表的是当前jwt创建的时间,所以如果你希望给你的token加上过期时间的话,这个字段就非常非常重要了。
最后一个部分也是最重要的,signature数字签名,这个部分就等于是jwt的激光防伪标准,服务器通过这个数字签名来判断你所发送的jwt token是否有效,是否被篡改过。一旦数字签名的验证失败,整个jwt就作废了。
1回答
-
阿莱克斯刘
2021-08-22
回答正确
00
相似问题