常用的认证机制之session认证和token认证

导读:本篇文章讲解 常用的认证机制之session认证和token认证,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、session认证

1、session认证的过程:
前端输入用户名和密码进行登录操作,后端拿到用户名和密码后,会把md5进行加密,加密之后,拿上加密后的密文到用户表中查找密文是否一致,判断用户是否存在,如果用户存在,则认证通过;认证成功后后端会生成session_id(后端会话当中的一个键,表中的一个key值),将session_id默认保存在会话表,当这条数据一旦记录完之后,会将session_key数据作为session_id放到响应头的set-cookie字段中;
浏览器接下来的操作为:将响应头中的set-cookie字段的值取出来把它放到cookie中,下一次请求接口的时候,浏览器会自动将cookie中的sessionid字段传给后端,而后端将sessionid取出来,去会话表中查找,如果一致登录成功,否则登录失败;如果sessionid时间超时,也会登录失败。
在这里插入图片描述
如果没有这种cookies机制,我们不管干嘛都得登录;有cookies机制,只要我们有合法的sessionid,并且sessionid没有过期就可以正常访问。

会话id(session_id)是后端django生成的
2、session认证示意图:
在这里插入图片描述
3、session认证机制的特点:
session保存在服务端,大量的用户进行登录操作,数据会存放大量的数据;会增加服务器开销
分布式架构中,难以维持session会话同步
csrf攻击风险

二、token认证

1、token认证的过程:
a、客户端使用用户名和密码请求登录
b、服务器收到请求,去验证用户名和密码
c、验证成功后,服务器会生成一个token,再把token发送给客户端
d、客户端收到token以后把它存储起来,放到会话存储或者本地存储中(浏览器关掉后,存放在会话存储中的内容被清空,本地存储会永久存放,除非手动删除本地存储内容),
e、客户端每次向服务端请求资源的时候需要带着服务端返回来的token
f、服务端收到请求后,去验证客户端请求里面带着的token,如果验证通过,就向客户端返回响应数据
2、token认证示意图:
在这里插入图片描述
3、token认证机制的特点:
token保存在客户端,不保存在数据库;不会增加服务器开销,性能更好
跨语言、跨平台
拓展性强
鉴权性能高
cookie是专门保存身份信息的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74406.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!