账号登陆太麻烦 不想一个个申请api 能不能把账号转化成session然后用代码识别session文件夹进行登陆
你是想在本地将密码转为session保存吗?还是你想保存登录之后的session?我可以完成
你的这个有个局限性,就是对于分布式架构支持性不是太好,除非你将session目录做成共享NAS可以让多个服务器访问
有两种办法,
1。是登录user后,生成一个sessionid(比如md5(userid+随机字符串)),和账号user有一个一一对应关系,存放到redis缓存中(比如string类型),设置session过期时间,这样下次请求api就直接从缓存里通过sessionid找到对应的userid了,而且这种方式可以支持分布式架构部署。
2. 通过jwt库( JSON Web Tokens ),是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目python也有很多jwt方式的库,通过登录成功的userid,encode生成一串jwt的加密后字符串,后边客户端和服务器交互都将通过这个串来进行校验,服务器收到客户端的加密串后,很快的通过decode解出来拿到sessionid和过期时间,就可以判断当前访问是否有效,对应的哪个用户
有详细步骤
import requests
# 创建一个session对象
session = requests.session()
# 构造登录请求的参数
login_data = {
'username': 'your_username',
'password': 'your_password'
}
# 发送登录请求
response = session.post('https://example.com/login', data=login_data)
# 检查登录是否成功
if response.status_code == 200:
print('登录成功!')
else:
print('登录失败!')
# 使用session对象访问需要登录的页面
response = session.get('https://example.com/protected_page')
# 处理响应内容
print(response.text)
你可以用cookie 保留日期很长的那种 做个拦截器读取cookie
前不久,在网上找学校课表时,一不小心发现了这篇博客(作者居然是校友,莫名的感动),本着将南邮发扬广大,抱着学习的态度,决定对该作者的代码进行小小的补充,对python使用session模拟登陆进行介绍。
为什么我们在第一次登陆某些网站后,再次刷新页面的时候却不要重新登陆?在这里面,有个神奇的东西,再帮我们维持着对话,它就是Cookie
,关于Cookie
的进一步解释在此就不展开了,百度一下就够了。而我们在第一次输入密码等信息时,实际上就是在构造Cookie
。更进一步,我们在构造Cookie
时,其实就是在向登陆界面提交一个表单。