2.基于token || session的登陆验证机机制

1.用户认证

http是无状态协议,不保存用户状态

1)session认证

2)token认证

 

 

2.基于session的用户认证

(1)过程

1)用户名密码校验:client向serve发送 验证码,accout, password;并且进行验证

2)session存储数据:服务器验证通过后,在session(当前对话)中保存相关数据如用户昵称,登陆时间等。

3)服务器生成session ID:服务器随机生成唯一的session-id返回给用户,写入用户的cookie中

4)用户传回session ID:用户随后的每一次请求,都通过cookie将session-id传回服务器

5)服务器接收session ID: 找到前期保存用户相关的数据

 

(2)缺点

1)开销大:高并发情况下服务器开销大,每一个请求都需要开辟session,内存开销不断增加

2)可扩展性差:session存在与于服务器中,session中的关键信息会限制服务器的扩展和负载均衡,并且不支持跨域,对移动端支持不友好

3)安全性低:cookie机制容易遭受CSRF(跨站请求伪造)

 

 

3.基于token的用户认证

(1)过程

1)用户名密码校验:client向serve发送 验证码,accout, password;使用md5加密后进行验证

2)token生成:服务器端生成一个 token,将token 存放在 redis数据库中,再将这个 token 值返回给客户端。

3) token 存储:客户端将 token 存储在 local storage 或 session storage中 (小程序可以存放在 app.global )

4)用户有新的请求时,从storage中携带token发送到服务端进行验证

5)服务端验证token并且返回数据

ps:vue的axios中

4)将token设置为请求头;以后的请求中会自动添加该请求头

       5)路由守卫:使用router-guide做权限校验,判断当前页面是否需要进行token验证

 

(2)token优点

1)无状态,可扩展:

      服务器不存储session信息,所以服务器和用户信息没有关联(无session亲和性);

      负载均衡服务器,用户请求可以传递到任何一台服务器上面;

      支持跨域且支持移动端

2)安全性高:避免了基于session的CSRF

3)本质使用cpu算力换取内存

 

参考1  参考2

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值