摘要
head(用sessiong管理 头部或cookie,)
body
url地址里
cookie或其他位置
一、token概述
1、摘自百度介绍
Token, 令牌,代表执行某些操作的权利的对象
访问令牌(Access token)表示访问控制操作主体的系统对象
邀请码,在邀请系统中使用
Token, Petri 网(Petri net)理论中的Token
密保令牌(Security token),或者硬件令牌,例如U盾,或者叫做认证令牌或者加密令牌,一种计算机身份校验的物理设备
会话令牌(Session token),交互会话中唯一身份标识符
令牌化技术 (Tokenization), 取代敏感信息条目的处理过程
2、总结:
token一般由账号、密码、时间经过加密处理的标记(token)序列,用来访问或执行某系统的权限。类似于古代行军进程的令牌通行证
二、token位置和获取
1、token的位置
通过抓包或直接问开发或看接口文档来确认token位置。
一般有4个位置:url(参数),headers,body、cookie,及其他如html其他位置
举例:
url2 = "http://xxxx"
par = {"token": ret_token}
h= {
"token": ret_token
}
body = {"key1": "value1",
"key2": "value2",
"token": ret_token
}
c={ "token": ret_token}
r2 = requests.post(url2, headers=h, data=body,cookies=c)
2、用session来管理header和cookie,进而管理token(会将cookies和heads中的token自动关联到到session中,如果在其他位置如url或body,token要抓取好后用参数化手动传)
举例:
# headers 或cookies含token
s = requests.session()
s.headers["token"]="xxx"
s.cookies["token"]="xxx"
print(s.headers)
print(s.cookies)
#url或body含头部
url2 = "http://xxx"
par = {"token": "xxx"}
body = {"key1": "value1",
"key2": "value2",
"token": "token_body"
}
r2 = requests.post(url2, data=body)
从图中可以看出token已经更新在头部或cookie中了