一、接口鉴权通用的解决方案:
认证信息的获取
认证信息的携带
1、流程图
二、接口鉴权的常用方法
三、cookie鉴权
req=requests.session()
获取session的实例,需要通过session()保持会话
即为认证之后,之后所有的实例都会携带cookie
可以模仿用户在浏览器的操作
import requests
class TestCookieVerify:
def test_cookies_session(self):
"""
cookie鉴权:
获取session的实例,需要通过session()保持会话
即为认证之后,之后所有的实例都会携带cookie
可以模仿用户在浏览器的操作
:return:
"""
req=requests.session()
#第一次登录,植入cookie
r2 = req.get(url='https://httpbin.xxx.com/cookies/set/kobe/111111',
headers={'count':'1'})
print(f"第一次的响应值为{r2.json()}")
#第二次请求的时候即可携带cookie信息
r3 = req.get(url='https://httpbin.xxx.com/cookies',
headers={'count': '2'})
print(f"第一次的响应值为{r3.json()}")
r4 = req.get(url='https://httpbin.xxx.com/cookies',
headers={'count': '3'})
print(f"第一次的响应值为{r4.json()}")
四、token鉴权
import requests
class TestTokenVerify:
def test_litemall_token(self):
#获取token
r=requests.post(url="http://xxx.com/admin/auth/login",
json={"username":"admin123","mm":"admin123"})
print(r.json())
token=r.json()['data']['token']
print(token)
#之后的请求都携带token
r1=requests.get("http://xxx.com/admin/profile/nnotice",
headers={"X-Litemall-Admin-Token":token})
print(r1.json())
五、auth鉴权
在基本HTTP身份验证中,请求包含格式为的标头字段Authorization: Basic
其中credentials是ID和密码的Base64编码,由单个冒号连接:。
import requests
from requests.auth import HTTPBasicAuth
class TestTokenVerify:
def test_auth_verify(self):
r=requests.get(url='https://xxx.com/basic-auth/kobe/111111',
auth=HTTPBasicAuth('kobe','111111'))
print(r.text)