主题
SSO 授权提示页定制
SSO 授权提示页用于扫码登录、扫码绑定、授权成功、授权失败、二维码过期和授权方式不可用等场景。系统默认页面位于 /dist/security/sso/,需要定制时在 /sysdata/public/sso/ 下放置约定的 FreeMarker 模板。
可定制页面
| 场景 | 定制文件 | 默认页面 |
|---|---|---|
| 扫码登录授权确认 | /sysdata/public/sso/auth-{ssoid}.ftl | /dist/security/sso/auth.ftl |
| 扫码绑定授权确认 | /sysdata/public/sso/bind-{ssoid}.ftl | /dist/security/sso/bind.ftl |
| 无可用扫码应用提示 | /sysdata/public/sso/auth-tips.ftl | /dist/security/sso/auth-tips.ftl |
| 二维码过期提示 | /sysdata/public/sso/auth-expired.ftl | /dist/security/sso/auth-expired.ftl |
| 授权失败提示 | /sysdata/public/sso/auth-fail-{ssoid}.ftl | /dist/security/sso/auth-fail.ftl |
| 授权成功提示 | /sysdata/public/sso/auth-success-{ssoid}.ftl | /dist/security/sso/auth-success.ftl |
| SSO 授权方式不可用 | /sysdata/public/sso/auth-invalid.ftl | /dist/security/sso/auth-invalid.ftl |
{ssoid} 是单点登录方案 ID,在单点登录设置中配置。需要为不同 SSO 方案展示不同品牌或文案时,使用带 {ssoid} 的模板文件。
扫码登录授权确认页
用户在 PC 登录页扫码后,手机端完成第三方认证。如果系统没有开启扫码登录静默授权,手机端会展示授权确认页,提示用户是否授权 PC 端登录。
定制文件:
text
/sysdata/public/sso/auth-{ssoid}.ftl例如单点登录方案 ID 为 wechat,则文件路径为:
text
/sysdata/public/sso/auth-wechat.ftl扫码绑定授权确认页
用户在个人账号中绑定微信、企业微信、钉钉等 SSO 账号时,手机端会展示绑定授权确认页。
定制文件:
text
/sysdata/public/sso/bind-{ssoid}.ftl授权结果提示页
扫码流程中还可能出现成功、失败、过期等结果页:
| 场景 | 定制文件 |
|---|---|
| 授权成功 | /sysdata/public/sso/auth-success-{ssoid}.ftl |
| 授权失败 | /sysdata/public/sso/auth-fail-{ssoid}.ftl |
| 二维码过期 | /sysdata/public/sso/auth-expired.ftl |
授权成功页在微信内打开时,系统默认页面通常会尝试关闭当前页面;不在微信内打开时,才会展示成功提示。定制成功页时应保留这种移动端场景差异。
授权方式不可用提示页
通过 /api/auth/doSSOAuthRedirect 跳转某个 SSO 方案时,如果没有找到可用的 SSO Provider,系统会展示授权方式不可用页。
定制文件:
text
/sysdata/public/sso/auth-invalid.ftl无可用扫码应用提示页
用户扫码后,如果当前浏览器或 App 没有可用的扫码登录方案,系统会展示无可用扫码应用提示页。
定制文件:
text
/sysdata/public/sso/auth-tips.ftl该页面运行时会注入 AVAILABLE_APPS,表示当前系统可用的扫码登录应用名称列表。定制模板时可以读取这个变量展示提示文案。
与 OAuth2 授权接口的关系
/api/oauth2/authorize 是 SuccApp 对外提供 OAuth2 授权码流程的接口。当前实现中,用户已授权时会直接重定向到 redirect_uri 并带上 code;未登录时会跳转到 /login?redirect_url=...,登录成功后再回到授权流程。
因此,当前可定制的用户可见页面主要是登录页和本页列出的 SSO/扫码提示页。OAuth2 API 的参数和返回值见OAuth2 协议相关 API。
