From ba79154dc85ab5a286ae27707ef93730ccf7cab9 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Thu, 1 Aug 2024 01:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=90=8C=20client=20=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E7=99=BB=E5=BD=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/sso/sso-custom-login.md | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/sa-token-doc/sso/sso-custom-login.md b/sa-token-doc/sso/sso-custom-login.md index 95638d58..22118142 100644 --- a/sa-token-doc/sso/sso-custom-login.md +++ b/sa-token-doc/sso/sso-custom-login.md @@ -114,3 +114,57 @@ public SaResult ss(String name, String pwd) { 答:直接在前端更改点击按钮时 Ajax 的请求地址即可 + +### 4、不同 client 不同登录页 + +如果你的不同应用覆盖的用户群体差异极大,此时你可能想针对不同的应用跳转到不同的登录页,让每个应用的用户在登录时能够看到当前应用的专属信息,怎么做呢? + +首先,你需要在每个 sso-client 端配置上不同的 client 标识: + + + + +``` yaml +sa-token: + sso-client: + # 当前 client 标识 + client: sso-client-shop +``` + +``` properties +# 当前 client 标识 +sa-token.sso-client.client=sso-client-shop +``` + + + +然后在 `sso-server` 的 `configSso` 方法里 `notLoginView` 函数中根据 client 值,返回不同的登录视图 + +``` java +// 配置SSO相关参数 +@Autowired +private void configSso(SaSsoServerConfig ssoServer) { + + // 配置:未登录时返回的View + ssoServer.notLoginView = () -> { + + String client = SaHolder.getRequest().getParam("client"); + if("sso-client-shop".equals(client)) { + return new ModelAndView("sa-shop-login.html"); + } + if("sso-client-video".equals(client)) { + return new ModelAndView("sa-video-login.html"); + } + // 更多 ... + + // 都不匹配,返回一个默认的 + return new ModelAndView("sa-login.html"); + }; + + // ... + +} +``` + + +