跳到主要内容

首方 SPA 登录的凭证暴露面控制

背景

SPA 登录若把 PKCE verifier/token 持久化到 storage,XSS 即等于会话劫持。

决策

首方登录保留 AJAX /oauth2/login(json=true)直取授权码,PKCE verifier 由闭包持有不持久化;第三方走 authorize 整页跳转 + sessionStorage 中转;access_token 仅存内存不落 localStorage;后端整页托管登录页方案经评审后搁置。安全表述采用修正口径:缩小暴露窗口而非根除泄露。

后果与现状对照

frontends/user 的 authService/http 按此实现;第三方集成路径在 OIDC 指南说明。