From 864e5d695f05f2b441f593fc5d912f3b28bb60f9 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 02 十一月 2023 12:25:54 +0800 Subject: [PATCH] update 优化 重构登录策略增加扩展性降低复杂度 --- ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java index 548031e..cb43742 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/XcxAuthStrategy.java @@ -6,12 +6,12 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.Constants; -import org.dromara.common.core.domain.model.LoginBody; +import org.dromara.common.core.domain.model.XcxLoginBody; import org.dromara.common.core.domain.model.XcxLoginUser; import org.dromara.common.core.enums.UserStatus; import org.dromara.common.core.utils.MessageUtils; import org.dromara.common.core.utils.ValidatorUtils; -import org.dromara.common.core.validate.auth.WechatGroup; +import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.domain.SysClient; import org.dromara.system.domain.vo.SysUserVo; @@ -33,14 +33,14 @@ private final SysLoginService loginService; @Override - public void validate(LoginBody loginBody) { - ValidatorUtils.validate(loginBody, WechatGroup.class); - } - - @Override - public LoginVo login(String clientId, LoginBody loginBody, SysClient client) { + public LoginVo login(String clientId, String body, SysClient client) { + XcxLoginBody loginBody = JsonUtils.parseObject(body, XcxLoginBody.class); + ValidatorUtils.validate(loginBody); // xcxCode 涓� 灏忕▼搴忚皟鐢� wx.login 鎺堟潈鍚庤幏鍙� String xcxCode = loginBody.getXcxCode(); + // 澶氫釜灏忕▼搴忚瘑鍒娇鐢� + String appid = loginBody.getAppid(); + // todo 浠ヤ笅鑷瀹炵幇 // 鏍¢獙 appid + appsrcret + xcxCode 璋冪敤鐧诲綍鍑瘉鏍¢獙鎺ュ彛 鑾峰彇 session_key 涓� openid String openid = ""; @@ -52,7 +52,10 @@ loginUser.setTenantId(user.getTenantId()); loginUser.setUserId(user.getUserId()); loginUser.setUsername(user.getUserName()); + loginUser.setNickname(user.getNickName()); loginUser.setUserType(user.getUserType()); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); loginUser.setOpenid(openid); SaLoginModel model = new SaLoginModel(); @@ -61,6 +64,7 @@ // 渚嬪: 鍚庡彴鐢ㄦ埛30鍒嗛挓杩囨湡 app鐢ㄦ埛1澶╄繃鏈� model.setTimeout(client.getTimeout()); model.setActiveTimeout(client.getActiveTimeout()); + model.setExtra(LoginHelper.CLIENT_KEY, clientId); // 鐢熸垚token LoginHelper.login(loginUser, model); -- Gitblit v1.9.3