diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index fb8f8dc6c..9d1abc8fe 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,24 +1,22 @@ package com.ruoyi.web.controller.system; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.shiro.util.CustToken; import com.ruoyi.system.service.IWechatApiService; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -40,13 +38,20 @@ public class SysLoginController extends BaseController String code= request.getParameter("code"); //String state = request.getParameter("state"); String username=wechatApiService.GetLoginNameWithWechatCode(code); + //如果没有获取到用户名,说明验证失败,跳转登录页 + if(StringUtils.isEmpty(username)){ + return "login"; + } + String password=""; Boolean rememberMe=true; map.put("loginType","wechat"); map.put("username",username); map.put("password",password); - return "login"; + return "loginwechat"; + + } // 如果是Ajax请求,返回Json字符串。 diff --git a/ruoyi-admin/src/main/resources/templates/login.html b/ruoyi-admin/src/main/resources/templates/login.html index 4083cfa7f..95188c7f1 100644 --- a/ruoyi-admin/src/main/resources/templates/login.html +++ b/ruoyi-admin/src/main/resources/templates/login.html @@ -81,38 +81,5 @@ - diff --git a/ruoyi-admin/src/main/resources/templates/loginwechat.html b/ruoyi-admin/src/main/resources/templates/loginwechat.html new file mode 100644 index 000000000..ab13f59d5 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/loginwechat.html @@ -0,0 +1,82 @@ + + + + + + 登录BPS后台管理系统 + + + + + + + + + + +
+

登录中...

+
+
+ + + + + + + + + diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WechatApiServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WechatApiServiceImpl.java index 14d685ce2..fc5bb895d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WechatApiServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WechatApiServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; +import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; @@ -112,12 +113,13 @@ public class WechatApiServiceImpl implements IWechatApiService { //获取访问用户身份ID String url="https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo"; String param = "access_token="+wechatApiService.GetAccessToken()+"&code="+code; - String userInfo = HttpUtils.sendGet(url,param); //测试已能正常返回UserInfo Json,正式使用时打开 - //String userInfo = "{\"UserId\":\"359\",\"DeviceId\":\"10000589102865WJ\",\"errcode\":0,\"errmsg\":\"ok\"}"; //为避免去微信获取code麻烦,开发调试时打开 + //String userInfo = HttpUtils.sendGet(url,param); //测试已能正常返回UserInfo Json,正式使用时打开 + String userInfo = "{\"UserId\":\"359\",\"DeviceId\":\"10000589102865WJ\",\"errcode\":0,\"errmsg\":\"ok\"}"; //为避免去微信获取code麻烦,开发调试时打开 JSONObject jsonObjectUserInfo = JSONObject.parseObject(userInfo); - //如果返回码不为0,则返回错误信息 + //如果返回码不为0,则输出错误信息,并返回空值 if ( Integer.parseInt(jsonObjectUserInfo.getString("errcode")) != 0){ - return jsonObjectUserInfo.getString("errmsg"); + System.out.println(jsonObjectUserInfo.getString("errmsg")); + return ""; } String userId = jsonObjectUserInfo.getString("UserId"); @@ -129,7 +131,8 @@ public class WechatApiServiceImpl implements IWechatApiService { //如果返回码不为0,则返回错误信息 if(Integer.parseInt(jsonObjectUserInfoDetail.getString("errcode")) != 0) { - return jsonObjectUserInfo.getString("errmsg"); + System.out.println(jsonObjectUserInfo.getString("errmsg")); + return ""; } String userEmail= jsonObjectUserInfoDetail.getString("email"); String userName= jsonObjectUserInfoDetail.getString("name");