栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

cookie和session实现原理_session和cookietoken的区别?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cookie和session实现原理_session和cookietoken的区别?

md5加密密码,以及增加可选返回值能力(返回整个响应体json或仅token值)

import requests
import hashlib
import pprint
#需求:输入一个字符串的密码,输出一个md5加密结果
def get_md5(password):
    #1-实例化加密对象
    md5 = hashlib.md5()
    #2-进行加密操作
    md5.update(password.encode('utf-8'))
    #3-返回机密后的16进制值
    return md5.hexdigest()

#print(get_md5('111'))

HOST = 'http://121.41.14.39:8082'
def login(inData,getToken=False):
    '''
    :param indata:账号密码---字典
    :return:
    '''
    #1-url
    url = f'{HOST}/account/sLogin'
    #2-参数
    #字典的修改值操作  字典[键] = 新的值
    inData['password'] = get_md5(inData['password'])
    payload = inData
	#3-请求方法
    resp = requests.post(url, params=payload)
    if getToken == False:
        return resp.json()
    else:
        return resp.json()['data']['token']

if __name__ == '__main__':  # ctrl+j
    res = login({'username':'111','password':'111'})#不传getToken,保持默认
   # pprint.pprint(res)
    print(res)

cookie练习 http协议

#cookie:是服务器给客户端的--返回在响应头
#sessionID---存在服务器里
#cookies---存在客户端
#登录接口---基于cookie机制

#练习一:原生cookie及二次封装
import requests
def login(inData):
    #1-url
    url = 'http://localhost/api/mgr/loginReq'
    payload = inData
    resp = requests.post(url,data=payload)
    print(resp.text)
    #方案一:原生态cookie---如果后续的接口直接使用这个cookie,不增加其他参数---直接使用
    print(resp.cookies)
    #方案二:如果后续接口使用这个cookie,再增加其他参数认证,重新封装cookie
    print(resp.cookies['sessionid'])
    #print(resp.headers)
    return resp.cookies,resp.cookies['sessionid']

#方案一:
#原生态cookie
cookie1 = login({'username':'111','password':'111'})[0]
#其他接口请求
resp = requests.post('路径',cookies = cookie1)

#方案二:
session = login({'username':'111','password':'111'})[1]
user_cookie = {'sessionid':session,'token':'123456'}#增加新参数二次封装cookie
#其他接口请求
resp = requests.post('路径',cookies = user_cookie)

https协议

#练习二:https协议
requests.packages.urllib3.disable_warnings()#忽略警告
def login(inData):
    #1-url
    url = 'https://localhost/api/mgr/loginReq'
    payload = inData
    resp = requests.post(url,data=payload,verify = False)#加上verify = False,才能访问https
    print(resp.text)

login({'username':'111','password':'111'})
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783501.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号