php curl 使用金智统一认证(Wisedu)登录正方教务系统

2023 年 9 月 3 日 星期日(已编辑)
/ , , , , , ,
305
这篇文章上次修改于 2023 年 9 月 4 日 星期一,可能部分内容已经不适用,如有疑问可询问作者。

php curl 使用金智统一认证(Wisedu)登录正方教务系统

偶然发现正方教务系统是支持金智统一认证登录的 /sso/jziotlogin

我们学校也接入了(但是没有公开,大家一直都用着教务系统的另一套密码登录,真心无语) 流程分析: -----

登录完统一认证平台,然后访问 /sso/jziotlogin,看到了一堆 302

/login?service= 是金智的授权页面,会自动认证,然后把 ticket 带回 service

然后就是教务系统自己的一堆 302,点开查看头信息可以看到很多 Set-Cookie,这就是我们要的东西了,但是要注意 JSESSIONID 是会变的,我们要保留最后一次的 JSESSIONID

代码编写: -----

我们使用上一篇获取到的统一认证 cookie 去得到 ticket(携带 cookie 访问 /login?service= 页面并从头信息 Location 中提取 ticket)

这里一定要把 FollowLocation 设置为 false 然后自行处理 302,因为 curl 不会处理保留每次跳转的 Set-Cookie

循环访问,从 header 中提取每次跳转 url 以及 cookie 并处理,直到跳转至主页面,最后一次的 cookie 就能正常访问教务系统啦

登录效果如下,成功获取 cookie 并获取空教室信息

完整代码就不贴了,已经讲得很详细了。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...