本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/109262575
前面写了一些关于 Basic认证、Digest认证,这次来写下 我遇到的session-cookie鉴权。
个人博客:https://blog.csdn.net/zyooooxie
Session-Cookie
说下我这系统的认证流程:
[三个相关接口:/api/auth/get/key、/api/auth/get/verify/image、/api/auth/login;key接口 会返回data字段值;image接口 key字段传 data字段值,响应是 图片 (验证码);login接口 传用户名、密码、data字段值、验证码(str)等字段,实现登录]
1.浏览器 第一次请求【key接口】,服务器根据请求提交的相关信息,创建对应的 Session;
2.服务器 保存Seesion 于redis中,给这个Session生成一个唯一的标识字符串SessionId,然后在响应头Set-Cookie中 将该SessionId返回【响应头 Set-Cookie: SESSION=XXXXXXXXXXXXXXXXXXXX; Path=/; HttpOnly】。
3.浏览器 会解析响应头,将SessionId保存在本地cookie中;当再次发送请求【image接口、login接口、后续接口】,会自动判断此域名下是否存在 Cookie 信息,自动的把上次请求存储的cookie数据 携带发给服务器。
4.服务器 在后续接受浏览器请求时,会去解析请求头cookie中的SessionId,然后根据这个SessionId查找对应的 Session 信息;
5.如果没有找到,说明用户没有登录或者登录失效,如果找到 Session 证明用户已经登录,可执行后面操作。
实战
可以参考 我之前写过的分享 Requests.Session()会话维持 ;
使用cookie 是用的unittest;
pytest + Requests.Session()
整个登录过程:
Fixture:
后续,我会把我这个接口自动化脚本 做更新 接口自动化 https://blog.csdn.net/zyooooxie/article/details/111835459
某手机App的Session-Cookie
这是我现在公司的某app碰到的;
流程,其实和web没什么区别;
现在app一般采用 token 的方式来进行登录认证,见 Token认证
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie