Python_16 session、cookie 鉴权
一、查缺补漏
1. pprint
https://www.cnblogs.com/yjybupt/p/10669988.html
https://www.cnblogs.com/wongbingming/p/12854618.html
2. 鉴权:
http://testingpai.com/article/1621929988356
3. import json
json.dump() 转成json
json.loads() 转成字符串
4. cookie可以带各种 可以带session,session+token,token可以通过set-cookie传,也可以通过别的请求头传,这些都是灵活的,全看后端开发怎么解析,session一般是只能通过响应的set-cookie返回,请求的时候再通过cookie字段带过去
二、鉴权
1. session、cookie 鉴权
a. 使用MD5、RSA(看不懂的字符串)加密,创建一个session对象id和cookie存在mysql或者redis(非关系型数据库)中
b. cookie是前端的一种缓存机制,参数存在缓存里,session是后端生成的
c. 不知道是什么鉴权可以去问开发
2. token 鉴权 解放了缓存,不用存储,每次都要计算,消耗cpu但是不消耗内存,cpu比较便宜
a. 注册(数据库存储用户名和密码)
b. 登陆(提交用户名+密码)
c. 后端获取到用户名密码(进行校验密码和用户名是否与数据库存储的一致)
d. 给我令牌(token)
e. 算法生成token(rootAa12345620412010) 生成token和解析token的规则是固定的
f. 返回给客户端
g. 客户端再次请求接口带上token
h. 后端接收到token并解析token(rootAa12345620412010)
i. 抽取时间戳(20412010)和id10用户的唯一标识
j. 通过用户唯一标识去数据库找到生成token需要的数据
k. 再生成一次token(rootAa12345620412010) 时间戳都是使用之前传递的时间戳,当再次生成时才换掉
l. 拿新生成的和你给我的对比 + 时间戳间隔对比
用当时的时间戳和之前的做对比(间隔多长时间是由后端决定的)判断token时效是否过期
m. token一致就返回接口数据
- session、cookie 鉴权和token 鉴权的区别
a. session会消耗内存要到库里对比,token不消耗内存只需要cpu计算
b. token相对安全,使用RSA非对称加密,但是token可逆
c. session会通过存储一般是不可逆的 - 重点
a. token生成规则(后端决定)
b. 如何校验token正确性、如何校验token有效时间
c. token替换规则(后端决定)
d. 用例执行时token失效,直接重新获取就好,异常捕获,重新获取token,pytest可以错误重试
e. 鉴权方式和token有效时间可以问开发
三、requests一些概念:
a. 什么叫接口
i. USB:传数据
ii. 互联网:用来传数据
b. 接口必要数据
i. 请求地址: https://openapiv5.ketangpai.com/UserApi/login
ii. 请求方法:post、get
iii. 请求数据:
iv. 响应参数:
c. 使用:requests支持所有的http请求方式get请求:requests.get(url=url,params=None,**kwargs)
a. url:请求地址
b. params=None:请求参数
c. **kwargs:其他字段
d. 参数放在url后面:直接拼接可一个新的url
如 url :'http://httpbin.org/get?key1=val1&key2=val2'
e. 参数使用params关键字接收,会自动拼接到url地址后面
f. ?:表示后面都是查询参数,key1=val1形式展示,多个参数使用&进行连接post请求 requests.post(url,data=None,json=None,**kwargs)
a. url: 请求地址
b. data=None:请求参数
data关键字:默认form表单'Content-Type': 'application/x-www-form-urlencoded'如果设置请求头headers = {'Content-Type': 'application/json;charset=UTF-8'},就使用设置的方式
c. json=None:请求参数
json关键字:默认json模式 'Content-Type': 'application/json;charset=UTF-8'如果设置请求头headers = {'Content-Type': 'application/x-www-form-urlencoded'},就使用设置的方式
d. **kwargs:接收其他字段
post的参数格式
a. application/x-www-form-urlencoded
默认地,表单数据会编码为 “application/x-www-form-urlencoded”。就是说,在发送到服务器之前,所有字符都会进行编码,空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值。
窗体数据被编码为:名称/值对,这是标准的编码格式。
b. application/json
数据以 JSON 形式进行编码
c. multipart/form-data,头像
窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到。在使用包含文件上传控件的表单时,必须使用该值。
d. text/html
文本方式的网页文件。
e. text/xml
文本方式的 XML 文件,text/xml 忽略 XML 头所指定编码格式而默认采用 US-ASCII 编码。
f. text/plain
窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。
g. application/xml
数据以 XML 形式进行编码,application/xml 会根据 XML 头指定的编码格式来编码。
三、POST与GET区别参数传递
get:放在请求地址后面,查询数据,向后端获取数据,传的是查询参数(where条件)
post:放在body里面,提交参数,OCR参数、图片、文件参数长度
get、post参数长度实际上是由后端配置决定,并不是请求本身决定
get请求会做参数大小的限制:比较小
post请求也会做参数大小限制:稍微大一些安全性
get参数暴露在浏览器地址上
post放在body里面,需要抓包才能看见幂等性
a. 处理同一个请求的重复发送的方式
get请求查询一次和查询N次得到的结果都是一样 select * from user where id = 100;
post请求提交数据:注册,需要做幂等处理 insert into tabel()value();
b. 金融行业前端防多点(防止并发),后端幂等(请求数据一样,则只处理一条请求)
Python_16 session、cookie 鉴权的更多相关文章
- web开发常见的鉴权方式
结合网上找的资料整理了一下,以下是web开发中常见的鉴权方法: 预备:一些基本的知识 RBAC(Role-Based Access Control)基于角色的权限访问控制(参考下面①的连接) l ...
- 「快学springboot」集成Spring Security实现鉴权功能
Spring Security介绍 Spring Security是Spring全家桶中的处理身份和权限问题的一员.Spring Security可以根据使用者的需要定制相关的角色身份和身份所具有的权 ...
- Session, Token, OAuth 鉴权那些事儿
鉴权那些事 整体思路 无论什么样的服务, Web 服务总是不能绕开鉴权这个话题的, 通过有效的鉴权手段来保护网站数据, 来为特定用户提供服务. 整体来说, 有三种方式: Session-Cookie ...
- SpringBoot系列: Web应用鉴权思路
==============================web 项目鉴权============================== 主要的鉴权方式有:1. 用户名/密码鉴权, 然后通过 Sess ...
- WebAPI常见的鉴权方法,及其适用范围
在谈这个问题之前,我们先来说说在WebAPI中保障接口请求合法性的常见办法: API Key + API Secret cookie-session认证 OAuth JWT 当然还有很多其它的,比如 ...
- shiro jwt 构建无状态分布式鉴权体系
一:JWT 1.令牌构造 JWT(json web token)是可在网络上传输的用于声明某种主张的令牌(token),以JSON 对象为载体的轻量级开放标准(RFC 7519). 一个JWT令牌的定 ...
- shiro,基于springboot,基于前后端分离,从登录认证到鉴权,从入门到放弃
这个demo是基于springboot项目的. 名词介绍: ShiroShiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject. SecurityManager. Re ...
- Tomcat 容器的安全认证和鉴权
大量的 Web 应用都有安全相关的需求,正因如此,Servlet 规范建议容器要有满足这些需求的机制和基础设施,所以容器要对以下安全特性予以支持: 身份验证:验证授权用户的用户名和密码 资源访问控制: ...
- Django基于JWT实现微信小程序的登录和鉴权
什么是JWT? JWT,全称Json Web Token,用于作为JSON对象在各方之间安全地传输信息.该信息可以被验证和信任,因为它是数字签名的. 与Session的区别 一.Session是在服务 ...
- 关于防范csrf攻击基于token鉴权
在web开发中,之前都使用cookie + session方式来实现身份认证鉴权.但是现在前后端分离,以及终端有可能不支持cookie的情况下,一般都采用token方式.现在系统设计思路如下: 服务端 ...
随机推荐
- jQuery.extend 函数详解(转)
地址:http://www.jb51.net/article/29591.htm JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些 ...
- 《Unix/Linux系统编程》第九周学习笔记
<Unix/Linux系统编程>第九周学习笔记 信号和中断 中断"是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移 到中断处理.与发送给CPU的中断请求一 ...
- 容灾恢复 | 记一次K8S集群中etcd数据快照的备份恢复实践
[点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...
- 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发
一.前言 大家好,我是六哥! 又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的. 其实不是我不积极,而是相对更文学习来说,优先级不是最高. 对我而言,目前最重要 ...
- CF1286F Harry The Potter
CF1286F Harry The Potter 首先答案上界为 \(n\),就是对每个点用一次操作 1. 那么我们现在的思维模式就是利用操作 2 来减少操作 1 的次数. 不难发现,如果操作 2 的 ...
- 基于PaddleOCR的多视角集装箱箱号检测识别
基于PaddleOCR的多视角集装箱箱号检测识别 一.项目介绍 集装箱号是指装运出口货物集装箱的箱号,填写托运单时必填此项.标准箱号构成基本概念:采用ISO6346(1995)标准 标准集装箱箱号由1 ...
- aspnetcore微服务中使用发件箱模式实例
aspnetcore微服务种服务之间的通信一般都有用到消息中间件,如何确保该服务的持久层保存创建的数据同时又把消息成功投递到了关联服务,关联服务做对应的处理. 下面就以一个简单的例子来演示实现方式之一 ...
- Java面试——写一个生产者与消费者
更多内容,前往个人博客 一.通过synchronize 中的 wait 和 notify 实现 [1]我们可以将生产者和消费者需要的方法写在公共类中 1 package com.yintong.con ...
- jmeter常用的命令行及参数
一.运行方式分类 GUI方式:图形界面方式运行 CLI方式:command line命令行,jmeter的脚本可以通过命令行用命令进行执行 二.用命令行执行的优势: 1.图形化界面运行的时候会占用很大 ...
- flutter---->阿里云oss的插件
目前为止,阿里云官方并没有dart版本的oss sdk,所以才开发了这个插件flutter_oss_aliyun提供对oss sdk的支持. flutter_oss_aliyun 一个访问阿里云oss ...