笔记——什么是鉴权

2023-10-27

前言

鉴权是自动化测试路上的拦路虎;故以此记录鉴权到底是怎么回事。

一、什么是鉴权,为什么要鉴权

  1. 鉴权:是指验证用户是否有访问系统的权利。
  2. 为什么要鉴权 :对用户进行鉴权,防止非法用户占用网络资源,非法用户接入网络,被骗取关键信息

二、鉴权方式

  1. HTTP Basic Authentication
  2. OAuth(开发授权)
  3. session + cookie
  4. token

三、session + cookie

1.鉴权流程
**在这里插入图片描述
**
2. 鉴权过程详解

a、 用户注册的时候,客户端提交用户名和密码,服务端会存储用户名和密码,为了防止被脱库,密码存储一般会进行加密存储,不i如md5、rsa加密等待
b.、注册完成后,用户发起登录,客户端提交用户名和密码,服务端会对用户提交的数据进行校验(用户名就和密码是否正确),若正确服务端会根据用户信息(用户id,用户名,user_agent等)创建一个session,并存储在数据库中(一般是存储在redis中),保存好后,服务端会将这个session通过响应头的Set-cookie字段返回给客户端。
c.、客户端收到服务器的响应,浏览器会自动将响应头Set-cookie的内容添加到请求头的cookie中(代码实现要手动添加,如果使用其他创建session的方式自动添加),在请求其他接口时会始终携带这个请求头。
d.、服务端收到客户端发起的请求后,会从请求头中将session提取出来与之前存储在Redis中的session进行对比,如果一致就返回对应的接口数据给客户端,不一致或者是超时则不返回接口数据给客户端
session鉴权的缺点就是服务端存储压力较大,需要大量的存储空间来存储session,因此token鉴权应运而生

四、token鉴权

  1. 鉴权流程
    在这里插入图片描述
  2. 鉴权过程详解
    a、用户发起登录,客户端提交用户名和密码,服务端会对用户提交的数据进行校验,校验通过以后此时会提取用户的关键信息(比如用户名密码、用户id、时间戳等信息进行排序,然后再进行签名运算)通过特定的算法生成token,然后将这个token放到响应头里面返回给客户端。
    b、客户端收到响应结果,然后就会从响应结果中获取token(这个步骤是有前端工程师完成),然后将token放到请求头token字段中(通常情况是这个字段,由后端决定),再去请求其他接口
    c、服务端再次收到客户端请求,此时服务端会去请求头中提取出token,然后对token进行解签,获取到用户关键信息,再去数据库查询是否存在该用户。但凡这个token被修改过,解签就会失败,鉴权就自然失败了
    d、服务端鉴权成功就会返回对应接口数据更黑客户端,鉴权失败就不会返回随影数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

笔记——什么是鉴权 的相关文章

  • elasticsearch基本入门学习笔记

    Elasticsearch学习笔记 一 ElasticSearch概述 历史 谁在使用 ES和Solr 二 ElasticSearch安装 1 安装 2 熟悉目录 3 启动 三 elasticsearch head 可视化界面 四 kiba
  • 深度学习基础--finetune

    finetune 就是用别人训练好的模型 加上我们自己的数据 来训练新的模型 finetune相当于使用别人的模型的前几层 来提取浅层特征 然后在最后再落入我们自己的分类中 finetune的好处在于不用完全重新训练模型 从而提高效率 因为
  • leetcode:1812. 判断国际象棋棋盘中一个格子的颜色(python3解法)

    难度 简单 给你一个坐标 coordinates 它是一个字符串 表示国际象棋棋盘中一个格子的坐标 下图是国际象棋棋盘示意图 如果所给格子的颜色是白色 请你返回 true 如果是黑色 请返回 false 给定坐标一定代表国际象棋棋盘上一个存

随机推荐

  • 你知道 1 + 1 等于几吗?

    阅读本文需要 4 分钟 前言 当有人问你1 1等于几的时候 你会觉着这是对你的一种侮辱 这种弱智问题 居然拿来问我 听起来好像你说的没错 1 1是挺简单的 可是如果让你证明的话 可能你这一辈子都证明不出来 稍微知道一点的人 可能会联想到我国
  • 蓝桥杯习题-砝码称重(动态规划)Python实现

    问题描述 你有一架天平和 N 个砝码 这 N 个砝码重量依次是 W1 W2 WN 请你计算一共可以称出多少种不同的重量 注意砝码可以放在天平两边 输入的第一行包含一个整数 N 第二行包含 N 个整数 W1 W2 W3 WN输出一个整数代表答
  • Android实现倒计时跳转和延时操作

    App启动页倒计时3秒跳转到App的首页 这种操作在很多App中都很常见 如果需要做一个延时操作呢 写一个子线程停留3秒然后执行操作 这样的话需要特别的注意的是UI操作必须放在主线程里 那么还需要转化成主线程 NO 使用Handler轻松实
  • 运维的最终目标是什么?

    序言 闲来无事 聊聊运维的终极目标 反正是瞎扯 毕竟么有风 天气还这么寒冷 思维不能灵动 不能起一丝波澜 歌曲不错 偶尔也可以听听 毕竟也是南征北战 风言风语 运维 从来都不能登上大雅之堂 WHY 纵观整个软件的开发周期 需求 设计 编码
  • 模板类重载>>(输入)和<<(输出)运算符

    在模板类中输入运算符 gt gt 和输出运算符 lt lt 的重载 使用友元在类内声明 在类外实现 include
  • C++模板与模板的重载

    include
  • Restful 多参数请求,包含中文解决办法-postman

    首先 要知道postman restful多参数请求的写法 http ip port user 参数值1 参数值2 参数值3 例如 http localhost 6666 user 如果爱 部 0000121 postman当遇到上述 ur
  • ANSIBLE大全

    运维自动化之ANSIBLE 本章内容 运维自动化发展历程及技术应用 Ansible命令使用 Ansible常用模块详解 YAML语法简介 Ansible playbook基础 Playbook变量 tags handlers使用 Playb
  • 查看 jvm 参数

    文章目录 VM 参数 jdk 提供的命令行参数 查看堆概要信息 VM 参数 XX PrintCommandLineFlags 可以打印出传递给虚拟机的显示和隐式参数 隐式参数未必是通过命令行直接给出的 它可能是由虚拟机启动时自行设置的 XX
  • 用递归法求n!(函数定义)

    用递归法求n 函数定义 include
  • C++中mutimap简单用法

    mutimap和map基本用法都是一样的 map中键值对中的键是唯一的 而mutimap中的键可以重复 mutimap在现实中也是很常用的 比如部门和员工的关系 mutimap和map的头文件都是 都是关联容器 都是需要通过迭代器来访问元素
  • P1018 [NOIP2000 提高组] 乘积最大

    题目 题目链接 题解 状态定义 dp i j 表示前i个数分成j段 即需要j 1个 的最大乘积 状态转移 dp i j max dp k 1 j 1 a k i dp i j 表示在第k 1和第k个数之间加上一个 得到的最大值 其中前k 1
  • yolov5模型在安卓android平台上部署(一)demo运行

    一 下载 配置 1 1 下载源文件 ncnn android yolov5下载传送门 Tencent ncnn下载传送门 下拉 下载该版本是因为自带vulkan加速 Android studio安装 Android studio下载传送门
  • 二叉树高度、结点个数、判断;

    1 二叉树的高度 2 二叉树的叶子结点个数 3 二叉树第k层的节点个数 4 判断节点是否在二叉树中 pragma once include
  • Vue将两个组件合并成一个

    使用webpack中的语法
  • 【官方教程】ChatGLM-6B 微调,最低只需 7GB 显存

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 内容来自 GLM大模型 自3月14日开源以来 ChatGLM 6B 模型广受各位开发者关注 截止目前仅 Huggingface 平台已经有 32w 下载 Github Star
  • vue3 el-upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件

    vue3 el upload 上传附件及预览 限制只能上传一个图片或者pdf格式的文件 效果如图 直接看代码吧 template部分 div class file upload div
  • office全家桶_告别office“全家桶”,自定义选择组件安装,用户体验一级棒

    相信点进来看的朋友们对Office都不会陌生 在安装office的时候不知道大家有没有发现 就算是最便宜的一套 安装包里面除了Word Excel PowerPoint三兄弟之外 其中还还包含了Outlook Publisher Acces
  • 多行输入实现

    C while scanf d d a b 2 如果a和b都被成功读入 那么scanf的返回值就是2 如果只有a被成功读入 返回值为1 如果a和b都未被成功读入 返回值为0 如果遇到错误或遇到end of file 返回值为EOF 且返回值
  • 笔记——什么是鉴权

    前言 鉴权是自动化测试路上的拦路虎 故以此记录鉴权到底是怎么回事 一 什么是鉴权 为什么要鉴权 鉴权 是指验证用户是否有访问系统的权利 为什么要鉴权 对用户进行鉴权 防止非法用户占用网络资源 非法用户接入网络 被骗取关键信息 二 鉴权方式