常用的认证机制之session认证和token认证
一、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是专门保存身份信息的
常用的认证机制之session认证和token认证相关推荐
- 代码角度理解SGX的认证机制(一):本地认证
一.基本概念 1.认证(attestation): 是指一个enlave中的程序向其他enclave证明其完整性和真实性的过程.intel SGX认证即是一个在SGX平台上运行的ISV enclave ...
- 代码角度理解SGX的认证机制(三):远程认证
SGX 远程证明 和EPID证明协议不同,SGX不允许信任各方充当EPID验证的角色.而是由intel提供一个全球在线验证机构叫做intel 认证服务 (IAS). EPID认证协议涉及两个intel ...
- 身份认证——session认证机制与JWT认证机制(入门到使用)
首先我们要了解什么是身份认证(Authentication)? 身份认证也叫身份验证或者鉴权,指通过一定的手段来完成对用户身份的验证 我们会使用session和JWT认证机制进行开发,那么我们在什么情 ...
- ASP.NET WebApi 基于分布式Session方式实现Token签名认证
一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...
- 使用 做签名的post_ASP.NET WebApi 基于分布式Session方式实现Token签名认证
一.课程介绍 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebServ ...
- Kafka的安全认证机制SASL/PLAINTEXT 2020.11.12
Kafka的安全认证机制SASL/PLAINTEXT SpringCloud Stream + Kafka安全认证机制(SASL/PLAINTEXT) Kafka的安全认证机制SASL/PLAINTE ...
- Webapi添加token认证功能
1.创建控制台应用程序 在 "文件" 菜单上,选择"项目". 从安装的 "视觉C#对象" 下,选择 " Windows 桌面&qu ...
- 基于Token的WEB后台登录认证机制(并讲解其他认证机制以及cookie和session机制)
几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RES ...
- 身份认证 Session认证机制 Cookie原理
身份认证 什么是身份认证 身份认证又称"身份验证"."鉴权",是指通过一定的手段,完成对用户身份的确认. 日常生活中的身份认证随处可见,例如:高铁的验票乘车,手 ...
最新文章
- jquery文件上传控件 Uploadify
- 开源通用爬虫框架YayCrawler-运行与调试
- 为什么强烈禁止开发人员使用isSuccess作为变量名
- C++ 深拷贝和浅拷贝std::move移动构造函数,移动赋值函数
- 【算法】插值查找算法
- Python基础——zip
- mysql主键外键_MySQL数据库的主键和外键详解3
- 85. php 绘图体系
- 植物大战僵尸的简单修改
- 手机上能不跳转就不跳转
- 第二类曲线、曲面积分计算公式
- java中输出第一个a的的位置,java小编程--在一个A字符串中找到与B字符串一样的,返回B字符串出现的第一个位置...
- ORA-01653: unable to extend table原因及解决
- 谷歌卫星地图下载器bigemap的优势
- 放榜!腾讯iOA、腾讯天幕入选国内数字化可信服务首批认证产品
- 2017安徽阜阳、亳州移动计算机类面试+合肥二面
- OTFS从零开始(一)
- androidQ集成apk
- java 二进制运算_java二进制运算基础知识点详解|chu
- JavaScript 原型链和继承面试题
热门文章
- 赛迪155页PPT中国“新基建”发展研究报告!
- 解决数据中心管综难题:管线避让的十七个原则!
- 亚马逊AWS 数据中心起火,致 5 人死亡、50 人受伤
- flutter可视化_Flutter 对Dart情有独钟的那些事儿
- Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略
- DL之AlexNet:AlexNet算法的架构详解、损失函数、网络训练和学习之详细攻略
- HighNewTech:带你解读云计算、雾计算(Fog Computing)、边缘计算(Edge Computing)的前世今生
- MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题
- js中的arguments 参数
- sqli-labs(十二)(union以及select的过滤)