diff --git a/sql/mysql5/youlai_boot.sql b/sql/mysql5/youlai_boot.sql index 5b1370ab..467d262f 100644 --- a/sql/mysql5/youlai_boot.sql +++ b/sql/mysql5/youlai_boot.sql @@ -405,7 +405,7 @@ CREATE TABLE `sys_user` ( `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', `update_by` bigint NULL DEFAULT NULL COMMENT '修改人ID', `is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)', - `open_id` char(28) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信 openid', + `open_id` char(28) DEFAULT NULL COMMENT '微信 openid', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `login_name`(`username` ASC) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC; diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index ae78d1b7..f1f0a09d 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -367,7 +367,7 @@ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', `update_by` bigint NULL DEFAULT NULL COMMENT '修改人ID', `is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)', - `open_id` char(28) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信 openid', + `open_id` char(28) DEFAULT NULL COMMENT '微信 openid', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `login_name`(`username` ASC) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC; diff --git a/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java b/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java index f254a1c2..5115cce4 100644 --- a/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java +++ b/src/main/java/com/youlai/boot/common/constant/SecurityConstants.java @@ -38,5 +38,5 @@ public interface SecurityConstants { /** * 微信登录路径 */ - String WX_LOGIN_PATH = "/api/v1/auth/wechatLogin"; + String WECHAT_LOGIN_PATH = "/api/v1/auth/wechat-login"; } diff --git a/src/main/java/com/youlai/boot/config/SecurityConfig.java b/src/main/java/com/youlai/boot/config/SecurityConfig.java index 1bd314c3..e7955cd7 100644 --- a/src/main/java/com/youlai/boot/config/SecurityConfig.java +++ b/src/main/java/com/youlai/boot/config/SecurityConfig.java @@ -57,7 +57,7 @@ public class SecurityConfig { requestMatcherRegistry .requestMatchers( SecurityConstants.LOGIN_PATH, - SecurityConstants.WX_LOGIN_PATH) + SecurityConstants.WECHAT_LOGIN_PATH) .permitAll() .anyRequest().authenticated() ) diff --git a/src/main/java/com/youlai/boot/config/WechatMiniAppConfig.java b/src/main/java/com/youlai/boot/config/WechatMiniAppConfig.java index 6268f512..129186fd 100644 --- a/src/main/java/com/youlai/boot/config/WechatMiniAppConfig.java +++ b/src/main/java/com/youlai/boot/config/WechatMiniAppConfig.java @@ -11,8 +11,9 @@ import org.springframework.context.annotation.Configuration; /** * 配置微信 appId 和 appSecret + * * @author wangtao - * @date 2024/11/26 17:28 + * @since 2024/11/26 17:28 */ @Setter @ConfigurationProperties(prefix = "wechat.miniapp") diff --git a/src/main/java/com/youlai/boot/shared/auth/controller/AuthController.java b/src/main/java/com/youlai/boot/shared/auth/controller/AuthController.java index 8e649d3b..091806d4 100644 --- a/src/main/java/com/youlai/boot/shared/auth/controller/AuthController.java +++ b/src/main/java/com/youlai/boot/shared/auth/controller/AuthController.java @@ -63,7 +63,7 @@ public class AuthController { } @Operation(summary = "微信登录") - @PostMapping("/wechatLogin") + @PostMapping("/wechat-login") @Log(value = "微信登录", module = LogModuleEnum.LOGIN) public Result wechatLogin( @Parameter(description = "微信授权码", example = "code") @RequestParam String code diff --git a/src/main/java/com/youlai/boot/shared/auth/service/AuthService.java b/src/main/java/com/youlai/boot/shared/auth/service/AuthService.java index 80190226..1a4215a4 100644 --- a/src/main/java/com/youlai/boot/shared/auth/service/AuthService.java +++ b/src/main/java/com/youlai/boot/shared/auth/service/AuthService.java @@ -42,7 +42,8 @@ public interface AuthService { AuthTokenResponse refreshToken(RefreshTokenRequest request); /** - * 微信登录 + * 微信小程序登录 + * * @param code 微信登录code * @return 登录结果 */ diff --git a/src/main/java/com/youlai/boot/shared/auth/service/impl/AuthServiceImpl.java b/src/main/java/com/youlai/boot/shared/auth/service/impl/AuthServiceImpl.java index b831dbb5..54e7243b 100644 --- a/src/main/java/com/youlai/boot/shared/auth/service/impl/AuthServiceImpl.java +++ b/src/main/java/com/youlai/boot/shared/auth/service/impl/AuthServiceImpl.java @@ -158,6 +158,12 @@ public class AuthServiceImpl implements AuthService { return tokenService.refreshToken(refreshToken); } + /** + * 微信小程序登录 + * + * @param code 微信登录code + * @return 访问令牌 + */ @Override public AuthTokenResponse wechatLogin(String code) { // 1. 通过code获取微信access_token @@ -179,7 +185,6 @@ public class AuthServiceImpl implements AuthService { // 2. 根据openId查询用户信息,如果不存在则注册新用户 User user = userService.getUserByOpenId(openId); - if (Objects.isNull(user)) { String name = "微信用户" + IdUtil.simpleUUID(); UserForm newUser = new UserForm(); @@ -188,11 +193,9 @@ public class AuthServiceImpl implements AuthService { newUser.setUsername(name); boolean result = userService.saveUser(newUser); if (!result) { - throw new BusinessException("微信用户注册失败"); } } - user = userService.getUserByOpenId(openId); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUsername().toLowerCase().trim(), SystemConstants.DEFAULT_PASSWORD); // 执行用户认证 diff --git a/src/main/java/com/youlai/boot/system/service/UserService.java b/src/main/java/com/youlai/boot/system/service/UserService.java index b2ced182..f9be4bdb 100644 --- a/src/main/java/com/youlai/boot/system/service/UserService.java +++ b/src/main/java/com/youlai/boot/system/service/UserService.java @@ -161,6 +161,7 @@ public interface UserService extends IService { /** * 根据openId获取用户信息 + * * @param openId openId * @return {@link User} */ diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java index ec323638..7e20540b 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java @@ -448,6 +448,7 @@ public class UserServiceImpl extends ServiceImpl implements Us /** * 根据openId获取用户信息 + * * @param openId openId * @return {@link User} */