用python代碼實現session、token鑒權


在實現之前,需要在pychram安裝requests庫:pip install requests

特別說明:post方法的參數

"""
post參數:
data參數:字典類型,默認content-type為application/x-www-from-urlencode
json參數:字典類型,默認content-type為application/json格式
     其他的content-type都可以使用data參數,但是data參數類型就不是字典了
"""

一、session鑒權

requests庫支持session鑒權,request中有一個session類,session類會自動帶上cookie,所以在session鑒權中,無需手動在請求頭中添加cookie

代碼實現:課堂派舊版本(session鑒權方式)

import requests
import json
session=requests.Session()#實例化一個會話對象
url='https://v4.ketangpai.com/UserApi/login'
#data為請求參數,舊版本的課堂派Content-Type:application/x-www-from-urlencode,表單類型
data={
    'email':'13550457423',
    'password':'zx001204',
    'remember':'0'
}
resp=session.post(url,data=data)#返回一個response對象
print(resp.json())#輸出響應json

 (以上json是經過輸出美化了的)美化代碼如下:

a=resp.text
j = json.loads(a)#json.loads()用於將str類型的數據轉成dict。
json_dicts = json.dumps(j,indent=4,ensure_ascii=False)
print(json_dicts)
"""
    登錄成功后,由於session會自動帶上cookie,所以無需加上cookie
"""
"""
    訪問isvip接口,判斷登錄用戶是否為vip
    這是一個get方法,沒有參數
"""
isvip_url='https://v4.ketangpai.com/VipApi/isVip'
resp_isvip=session.get(isvip_url)
print(resp_isvip.json())

 二、token鑒權

token鑒權不會自動帶上token值,所以需要我們手動獲取token

代碼實現:課堂派新版

import requests
#登錄,拿到token。
url='https://openapiv5.ketangpai.com//UserApi/login'
data={
    "email":"13550457423",
    "password":"zx001204",
    "remember":"0",
    "code":"",
    "mobile":"",
    "type":"login",
    "reqtimestamp":1648015981746
}
resp=requests.post(url,json=data)#這里是post方法,請求體為json
resp_dict=resp.json()
print(resp_dict)
token=resp_dict['data']['token']#拿到token
print(token)

"""
    拿到token后,調用getUserBasinInfo接口
    getUserBasinInfo為post方法
"""
getUserBasinInfo_url='https://openapiv5.ketangpai.com//UserApi/getUserBasinInfo'
getUserBasinInfo_data={"reqtimestamp":1648015982590}#請求體
getUserBasinInfo_header={'token':token}#需要加到請求頭的數據
getUserBasinInfo_resp=requests.post(getUserBasinInfo_url,json=getUserBasinInfo_data,headers=getUserBasinInfo_header)
print(getUserBasinInfo_resp.json())


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM