Skip to content

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

微信公众号微信公众号:山川软件