更新 hfnu 分发处的注释:IAP 路径实测不可行,应走短信登录

原注释声称「wecloud 网关支持标准 IAP 账密登录,单独走 IAP」,
与实际不符。实测:

  GET hfnu.campusphere.net/iap/login
  → HTTP 302 → ehall.hfnu.edu.cn/amp-auth-adapter/login?service=...

即 /iap/login 不给登录表单,直接跳 ehall 单点,导致 iapLogin 第一步
getIapLT(解析 lt 表单)必然失败——与 CAS 是否授权无关。

结合 10-19 抓包分析:ehall 侧登录只产出 ehall 域 cookie
(JSESSIONID/AUTHTGC/MOD_AMP_AUTH/asessionid),无法换到
campusphere 的 MOD_AUTH_CAS;校方 CAS 也拒绝为 campusphere 域签发票据。

本次仅更正注释说明真实情况与建议路径(短信登录),行为未变。
This commit is contained in:
becomer
2026-10-19 22:36:50 +08:00
parent adb8bb7560
commit b503f44a2d
+8 -2
View File
@@ -203,8 +203,14 @@ func CpdailyLogin(ctx context.Context, school *SchoolDetailInfo, username, passw
cookies, err := nutCasIapLogin(ctx, school, username, password)
return cookies, nil, err
}
// 合肥师范学院:学校统一身份认证 SSO 会拒绝单点登录跳转("系统拒绝单点登录跳转"),
// 但其 wecloud 网关(hfnu.campusphere.net)支持标准 IAP 账密登录,单独走 IAP
// 合肥师范学院:历史尝试走 IAP(网关 iap/doLogin 账密),但实测该校
// hfnu.campusphere.net/iap/login 直接 302 到
// ehall.hfnu.edu.cn/amp-auth-adapter/login(ehall 单点),
// 拿不到 IAP 登录表单,getIapLT 必然失败。
// 而 ehall 侧登录只产出 ehall 域 cookie(JSESSIONID/AUTHTGC/MOD_AMP_AUTH/
// asessionid),换不到 campusphere 的 MOD_AUTH_CAS(见 10-19 抓包分析)。
// 校方 CAS 亦拒绝为 campusphere 域签发 service 票据。
// 结论:hfnu 目前应走手机号+短信登录(MobileLoginByCode → ExchangeCasCookie)。
if school.ID == HfnuSchoolId {
cookies, err := iapLogin(ctx, school, username, password)
return cookies, nil, err