From 5dd8637302ec502b8f995a3e16b8b450f621e946 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 17 六月 2020 10:49:46 +0800
Subject: [PATCH] 优化登录页面不自登陆
---
service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java | 42 ++++++++++++++++++++++++++++++++++--------
1 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
index a756701..be48a6c 100644
--- a/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/ownerLogin/impl/OwnerAppLoginSMOImpl.java
@@ -48,6 +48,8 @@
private final static int expireTime = 7200;
+ private final static int LOGIN_PAGE = 1;
+
@Autowired
private RestTemplate restTemplate;
@@ -68,15 +70,18 @@
JSONObject loginInfo = JSONObject.parseObject(pd.getReqData());
loginInfo.put("passwd", AuthenticationFactory.passwdMd5(loginInfo.getString("password")));
- responseEntity = this.callCenterService(restTemplate, pd, loginInfo.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.service.login", HttpMethod.POST);
- if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ UserDto userDto = new UserDto();
+ userDto.setUserName(loginInfo.getString("username"));
+ userDto.setPassword(loginInfo.getString("password"));
+ userDto = super.postForApi(pd,userDto,ServiceCodeConstant.SERVICE_CODE_USER_LOGIN,UserDto.class);
+
+ if(userDto == null){
+ responseEntity = new ResponseEntity<>("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒", HttpStatus.BAD_REQUEST);
return responseEntity;
}
- JSONObject userInfo = JSONObject.parseObject(responseEntity.getBody());
-
//鏍规嵁鐢ㄦ埛鏌ヨ鍟嗘埛淇℃伅
- String userId = userInfo.getString("userId");
+ String userId = userDto.getUserId();
pd = PageData.newInstance().builder(userId, "", "", pd.getReqData(),
"", "", "", "",
@@ -97,7 +102,12 @@
JSONObject paramOut = new JSONObject();
paramOut.put("result", 0);
paramOut.put("owner", appUser);
- paramOut.put("token", userInfo.getString("token"));
+ paramOut.put("token", userDto.getToken());
+
+ userDto = new UserDto();
+ userDto.setUserId(ownerAppUserDtos.get(0).getUserId());
+ UserDto tmpUserDto = super.getForApi(pd, userDto, ServiceCodeConstant.QUERY_USER_SECRET, UserDto.class);
+ paramOut.put("key", tmpUserDto.getKey());
String appId = pd.getAppId();
@@ -185,8 +195,17 @@
//鑾峰彇 openId
String openId = paramObj.getString("openid");
- //鍒ゆ柇褰撳墠openId 鏄惁缁戝畾浜嗕笟涓�
+ int loginFlag = paramIn.getInteger("loginFlag");
+ //璇存槑鏄櫥褰曢〉闈紝涓嬪彂code 灏卞彲浠ワ紝涓嶉渶瑕佷笅鍙慿ey 涔嬬被
+ if(loginFlag == LOGIN_PAGE){
+ //灏唎penId鏀惧埌redis 缂撳瓨锛岀粰鍓嶆涓嬪彂涓存椂绁ㄦ嵁
+ String code = UUID.randomUUID().toString();
+ CommonCache.setValue(code, openId, expireTime);
+ return ResultVo.redirectPage(errorUrl + "?code=" + code);
+ }
+
+ //鍒ゆ柇褰撳墠openId 鏄惁缁戝畾浜嗕笟涓�
pd = PageData.newInstance().builder("-1", "", "", pd.getReqData(),
"", "", "", "",
pd.getAppId());
@@ -216,6 +235,12 @@
UserDto userDto = new UserDto();
userDto.setUserId(ownerAppUserDtos.get(0).getUserId());
UserDto tmpUserDto = super.getForApi(pd, userDto, ServiceCodeConstant.QUERY_USER_SECRET, UserDto.class);
+
+ if(StringUtil.isEmpty(tmpUserDto.getKey())){
+ String code = UUID.randomUUID().toString();
+ CommonCache.setValue(code, openId, expireTime);
+ return ResultVo.redirectPage(errorUrl + "?code=" + code);
+ }
redirectUrl = redirectUrl + (redirectUrl.indexOf("?") > 0 ? "&key=" + tmpUserDto.getKey() : "?key=" + tmpUserDto.getKey());
return ResultVo.redirectPage(redirectUrl);
@@ -234,6 +259,7 @@
@Override
public ResponseEntity<String> refreshToken(IPageData pd, String redirectUrl,
String errorUrl,
+ String loginFlag,
HttpServletRequest request, HttpServletResponse response) throws SMOException {
//鍒嗛厤urlCode
String urlCode = UUID.randomUUID().toString();
@@ -260,7 +286,7 @@
URLEncoder
.encode(
(newUrl
- + "/app/loginOwnerWechatAuth?appId=992020061452450002&urlCode=" + urlCode),
+ + "/app/loginOwnerWechatAuth?appId=992020061452450002&urlCode=" + urlCode+"&loginFlag="+loginFlag),
"UTF-8")).replace("STATE", "1");
} catch (Exception e) {
--
Gitblit v1.8.0