文章目录
一文大白话讲清楚Node鉴权机制和JWT Token
1. 啥是鉴权机制
- 鉴权,就是鉴定你有没有这个权限
- 那就涉及谁鉴定谁,肯定是服务器鉴定客户端
- 那问题又来了,为啥要鉴定,因为怕非法访问,所以要鉴定
- 那怎么鉴定呢
- 就是你首次请求我的时候,我把你的信息记录下来,然后给你也发一份,下次你请求的时候带上这个信息,我用我的跟你对比一起,如果符合说明是你,可以访问;如果一对比,不是你,那就拒绝请求
- 这个整个机制就叫鉴权机制
- 那这个信息到底是啥呢,问得好,他是啥,一般有几种情况, 分别是cookie和JWT
- 我们先讲cookie
2. cookie鉴权
- 我们在应用开发的时候,一般会有如下的鉴权流程
- 用户首次携带用户名和密码向服务器发起登录请求
- 服务器验证账户密码成功后,保存会话数据
- 服务器向用户返回session_id
- 用户将session_id保存到cookie中
- 用户下次请求的时候带上cookie
- 服务器收到请求,解析出来cookie进行比对,确认用户身份
- 这种方式在单服务器模式下是没有任何问题的,也是常用的
- 但是缺点是没有分布式架构,无法支持横向扩展。
- 如果要实现,就得单独设置一个session数据库来存储和维护,这样不仅工作量大而且一旦数据库挂掉,就无法验证了
- 所以需要一个更友好的,面向分布式的鉴权机制
- 他就是JWT
3. jwt鉴权‘
- 先不说jwt是啥,先说jwt为啥能解决这个分布式的问题
- 因为jwt鉴权机制,服务器不需要存储用户的认证信息
- 这不就简单了,因为不需要存储,所以就很好的解决了分布式的问题,那究竟是怎么实现的呢,
- 看JWT官网给的图示
3.1 JWT的原则
- JWT的原则是服务器完成验证后,生成一个JSON对象返回给客户端,客户端 进行保存,并下次访问携带
- JWT的格式如下
{