Browse Source

feat(auth): 微信登录增加 UnionID 校验

- 在多个微信登录接口中增加 UnionID 空值校验
- 若 UnionID为空则返回相应错误提示信息- 确保用户必须通过微信扫码或绑定开放平台后才能登录
- 移除旧版关注公众号登录逻辑及相关代码注释
- 统一错误返回格式,提升用户体验与系统安全性
xw 4 days ago
parent
commit
364dfb19c6

+ 3 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -102,6 +102,9 @@ public class WxH5MpController {
             WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
             WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
 
+            if (StringUtils.isEmpty(wxMpUser.getUnionId())){
+                return R.error("未绑定开放平台");
+            }
 
             // 处理用户信息
             FsUser user = processUserInfo(wxMpUser, company,companyUser,param);

+ 3 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxUserController.java

@@ -318,6 +318,9 @@ public class WxUserController extends AppBaseController{
         try{
             WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
             WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
+            if (StringUtils.isEmpty(wxMpUser.getUnionId())){
+                return R.error("未绑定开放平台");
+            }
             FsUser user=userService.selectFsUserByUnionid(wxMpUser.getUnionId());
             if(user!=null){
                 FsUser userMap=new FsUser();

+ 3 - 5
fs-user-app/src/main/java/com/fs/app/controller/course/CourseMpLoginController.java

@@ -80,11 +80,9 @@ public class CourseMpLoginController {
     try{
       WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
       WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
-      WxMpUserService wxMpUserService = wxMpService.getUserService();
-//      WxMpUser userInfo = wxMpUserService.userInfo(wxMpUser.getOpenid());
-//      if (!userInfo.getSubscribe()){
-//        return R.error("请关注公众号进行登录");
-//      }
+      if(StringUtils.isBlank(wxMpUser.getUnionId())){
+        return R.error("请使用微信扫码登录");
+      }
       FsUser user=userService.selectFsUserByUnionid(wxMpUser.getUnionId());
       if(user!=null){
         FsUser userMap=new FsUser();