Browse Source

微信登录

Administrator 2 years ago
parent
commit
e324c2500a

+ 1 - 1
ruoyi-admin/src/main/resources/application-druid.yml

@@ -37,7 +37,7 @@ spring:
         # 端口,默认为6379
         port: 6379
         # 数据库索引
-        database: 8
+        database: 13
         # 密码
         password: Boman123
         # 连接超时时间

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 过滤请求
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
-                .antMatchers("/login", "/register", "/captchaImage").permitAll()
+                .antMatchers("/login", "/register", "/captchaImage","/weChatLogin").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 4 - 4
ruoyi-framework/src/main/java/com/ruoyi/framework/utils/WxCodeSessionUtil.java

@@ -24,12 +24,12 @@ public class WxCodeSessionUtil {
      * 小程序appId
      */
 
-    private static final String APP_ID = "1";
+    private static final String APP_ID = "wx1ada5448f249d1ad";
 
     /**
      * 小程序密钥
      */
-    private static final String APP_SECRET = "2";
+    private static final String APP_SECRET = "ff62fc579b51a4f6636b08d9f9b25d69";
 
 
     /**
@@ -38,7 +38,7 @@ public class WxCodeSessionUtil {
      * @param form
      * @return
      */
-    public AppletSessionDTO jscode2Session(AppletLoginForm form) {
+    public static AppletSessionDTO jscode2Session(AppletLoginForm form) {
         // 获取openId和sessionKey
         JSONObject result;
         try {
@@ -77,7 +77,7 @@ public class WxCodeSessionUtil {
     /**
      * 手机号解密
      */
-    private String getPhoneNumber(AppletLoginForm form, AppletSessionDTO appletSession) {
+    private static String getPhoneNumber(AppletLoginForm form, AppletSessionDTO appletSession) {
 
         // 解密文件
         String encryptedData = form.getEncryptedData();

+ 2 - 9
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java

@@ -1,10 +1,7 @@
 package com.ruoyi.framework.web.service;
 
 import javax.annotation.Resource;
-import javax.validation.constraints.Size;
 
-import com.alibaba.fastjson2.JSON;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.enums.UserStatus;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.framework.utils.WxCodeSessionUtil;
@@ -15,7 +12,6 @@ import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
-import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.constant.Constants;
@@ -64,9 +60,6 @@ public class SysLoginService
     @Autowired
     private ISysConfigService configService;
 
-    @Resource
-    private WxCodeSessionUtil codeUtil;
-
     @Autowired
     private SysPasswordService passwordService;
 
@@ -128,7 +121,7 @@ public class SysLoginService
     {
         //用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID
         // (若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key
-        AppletSessionDTO dto = codeUtil.jscode2Session(form);
+        AppletSessionDTO dto = WxCodeSessionUtil.jscode2Session(form);
         String phoneNumber = dto.getPhoneNumber();
         if (StringUtils.isBlank(phoneNumber)){
             throw new BaseException("对不起,未获取到手机号");
@@ -150,7 +143,7 @@ public class SysLoginService
 
             throw new ServiceException("对不起,您的账号:" + phonenumber + " 已停用");
         }
-        passwordService.validate(user);
+        //passwordService.validate(user);
         LoginUser loginUser = createLoginUser(user);
         recordLoginInfo(loginUser.getUserId());
         return tokenService.createToken(loginUser);