feat: 新增微信小程序登录功能及第三方账号绑定表

This commit is contained in:
Ray.Hao
2026-03-05 07:45:01 +08:00
parent 9d117ce884
commit 27a8f0e6a5
40 changed files with 1643 additions and 164 deletions

View File

@@ -1,5 +1,6 @@
package com.youlai.boot.config;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.ArrayUtil;
import com.youlai.boot.config.property.SecurityProperties;
@@ -9,9 +10,11 @@ import com.youlai.boot.security.filter.TokenAuthenticationFilter;
import com.youlai.boot.security.handler.MyAccessDeniedHandler;
import com.youlai.boot.security.handler.MyAuthenticationEntryPoint;
import com.youlai.boot.security.provider.SmsAuthenticationProvider;
import com.youlai.boot.security.provider.WechatMiniAuthenticationProvider;
import com.youlai.boot.security.token.TokenManager;
import com.youlai.boot.security.service.SysUserDetailsService;
import com.youlai.boot.system.service.ConfigService;
import com.youlai.boot.system.service.UserSocialService;
import com.youlai.boot.system.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
@@ -54,6 +57,9 @@ public class SecurityConfig {
private final ConfigService configService;
private final SecurityProperties securityProperties;
private final WxMaService wxMaService;
private final UserSocialService userSocialService;
/**
* 配置安全过滤链 SecurityFilterChain
*/
@@ -128,17 +134,27 @@ public class SecurityConfig {
return new SmsAuthenticationProvider(userService, redisTemplate);
}
/**
* 微信小程序认证 Provider
*/
@Bean
public WechatMiniAuthenticationProvider wechatMiniAuthenticationProvider() {
return new WechatMiniAuthenticationProvider(wxMaService, userSocialService);
}
/**
* 认证管理器
*/
@Bean
public AuthenticationManager authenticationManager(
DaoAuthenticationProvider daoAuthenticationProvider,
SmsAuthenticationProvider smsAuthenticationProvider
SmsAuthenticationProvider smsAuthenticationProvider,
WechatMiniAuthenticationProvider wechatMiniAuthenticationProvider
) {
return new ProviderManager(
daoAuthenticationProvider,
smsAuthenticationProvider
smsAuthenticationProvider,
wechatMiniAuthenticationProvider
);
}
}