From 219655836dce9581cc668c77950204ab283d8d45 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 23 二月 2020 16:24:05 +0800
Subject: [PATCH] 优化登录功能
---
AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java | 65 ++++++++++++++------------------
1 files changed, 28 insertions(+), 37 deletions(-)
diff --git a/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java b/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
index 8437196..1117bc2 100644
--- a/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
+++ b/AppFrontService/src/main/java/com/java110/app/smo/wxLogin/impl/WxLoginSMOImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.app.properties.WechatAuthProperties;
+import com.java110.app.smo.AppAbstractComponentSMO;
import com.java110.app.smo.wxLogin.IWxLoginSMO;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
@@ -27,7 +28,7 @@
* wx鐧诲綍
*/
@Service("wxLoginSMOImpl")
-public class WxLoginSMOImpl extends AbstractComponentSMO implements IWxLoginSMO {
+public class WxLoginSMOImpl extends AppAbstractComponentSMO implements IWxLoginSMO {
private final static Logger logger = LoggerFactory.getLogger(WxLoginSMOImpl.class);
@@ -57,20 +58,23 @@
logger.debug("doLogin鍏ュ弬锛�" + paramIn.toJSONString());
ResponseEntity<String> responseEntity;
String code = paramIn.getString("code");
- String urlString = "?appid={appid}&secret={srcret}&js_code={code}&grant_type={grantType}";
+ String urlString = "?appid={appId}&secret={secret}&js_code={code}&grant_type={grantType}";
String response = restTemplate.getForObject(
wechatAuthProperties.getSessionHost() + urlString, String.class,
wechatAuthProperties.getAppId(),
wechatAuthProperties.getSecret(),
code,
wechatAuthProperties.getGrantType());
+
+ logger.debug("wechatAuthProperties:" + JSONObject.toJSONString(wechatAuthProperties));
+
logger.debug("寰俊杩斿洖鎶ユ枃锛�" + response);
- Assert.jsonObjectHaveKey(response, "errcode", "杩斿洖鎶ユ枃涓湭鍖呭惈 閿欒缂栫爜锛屾帴鍙e嚭閿�");
+ //Assert.jsonObjectHaveKey(response, "errcode", "杩斿洖鎶ユ枃涓湭鍖呭惈 閿欒缂栫爜锛屾帴鍙e嚭閿�");
JSONObject responseObj = JSONObject.parseObject(response);
- if (!"0".equals(responseObj.getString("errcode"))) {
- throw new IllegalArgumentException("寰俊楠岃瘉澶辫触锛屽彲鑳芥槸code澶辨晥");
+ if (responseObj.containsKey("errcode") && !"0".equals(responseObj.getString("errcode"))) {
+ throw new IllegalArgumentException("寰俊楠岃瘉澶辫触锛屽彲鑳芥槸code澶辨晥" + responseObj);
}
String openId = responseObj.getString("openid");
@@ -86,36 +90,17 @@
JSONObject userResult = JSONObject.parseObject(responseEntity.getBody());
int total = userResult.getIntValue("total");
+ JSONObject userInfo = paramIn.getJSONObject("userInfo");
+
if (total == 0) {
//淇濆瓨鐢ㄦ埛淇℃伅
JSONObject registerInfo = new JSONObject();
-
- JSONObject userInfo = paramIn.getJSONObject("userInfo");
//璁剧疆榛樿瀵嗙爜
String userDefaultPassword = MappingCache.getValue(MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
Assert.hasLength(userDefaultPassword, "鏄犲皠琛ㄤ腑鏈缃憳宸ラ粯璁ゅ瘑鐮侊紝璇锋鏌�" + MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
userDefaultPassword = AuthenticationFactory.passwdMd5(userDefaultPassword);
- /**
- * {
- * "userId": "-1",
- * "name": "寮犱笁",
- * "email": "928255095@qq.com",
- * "address": "闈掓捣鐪佽タ瀹佸競鍩庝腑鍖�129鍙�",
- * "password": "ERCBHDUYFJDNDHDJDNDJDHDUDHDJDDKDK",
- * "locationCd": "001",
- * "age": 19,
- * "sex": "0",
- * "tel": "17797173943",
- * "level_cd": "1",
- * "businessUserAttr": [{
- * "attrId":"-1",
- * "specCd":"1001",
- * "value":"01"
- * }]
- * }
- */
registerInfo.put("userId", "-1");
registerInfo.put("email", "");
registerInfo.put("address", userInfo.getString("country") + userInfo.getString("province") + userInfo.getString("city"));
@@ -128,13 +113,13 @@
registerInfo.put("password", userDefaultPassword);
JSONArray userAttr = new JSONArray();
JSONObject userAttrObj = new JSONObject();
- userAttrObj.put("attrId","-1");
- userAttrObj.put("specCd","100201911001");
- userAttrObj.put("value",openId);
+ userAttrObj.put("attrId", "-1");
+ userAttrObj.put("specCd", "100201911001");
+ userAttrObj.put("value", openId);
userAttr.add(userAttrObj);
registerInfo.put("businessUserAttr", userAttr);
responseEntity = this.callCenterService(restTemplate, pd, registerInfo.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.service.register", HttpMethod.POST);
- if(responseEntity.getStatusCode() != HttpStatus.OK){
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
throw new IllegalArgumentException("淇濆瓨鐢ㄦ埛淇℃伅澶辫触");
}
responseEntity = super.getUserInfoByOpenId(pd, restTemplate, openId);
@@ -143,21 +128,27 @@
if (responseEntity.getStatusCode() != HttpStatus.OK) {
throw new IllegalArgumentException("鏍圭粷openId 鏌ヨ鐢ㄦ埛淇℃伅寮傚父" + openId);
}
- userResult = JSONObject.parseObject(responseEntity.getBody());
+ userResult = JSONObject.parseObject(responseEntity.getBody());
}
+
+ JSONObject realUserInfo = userResult.getJSONArray("users").getJSONObject(0);
+ userInfo.putAll(realUserInfo);
+ userInfo.put("password", "");
try {
Map userMap = new HashMap();
- userMap.put(CommonConstant.LOGIN_USER_ID,userResult.getString("userId"));
+ userMap.put(CommonConstant.LOGIN_USER_ID, userInfo.getString("userId"));
+ userMap.put(CommonConstant.LOGIN_USER_NAME, userInfo.getString("name"));
String token = AuthenticationFactory.createAndSaveToken(userMap);
JSONObject paramOut = new JSONObject();
- paramOut.putAll(userResult);
- paramOut.put("token",token);
- paramOut.put("sessionKey",sessionKey);
+ paramOut.put("result", 0);
+ paramOut.put("userInfo", userInfo);
+ paramOut.put("token", token);
+ paramOut.put("sessionKey", sessionKey);
pd.setToken(token);
responseEntity = new ResponseEntity<String>(paramOut.toJSONString(), HttpStatus.OK);
- }catch (Exception e){
- logger.error("鐧诲綍寮傚父锛�",e);
+ } catch (Exception e) {
+ logger.error("鐧诲綍寮傚父锛�", e);
throw new IllegalArgumentException("閴存潈澶辫触");
}
//鏍规嵁openId 鏌ヨ鐢ㄦ埛淇℃伅锛屾槸鍚﹀瓨鍦ㄧ敤鎴�
--
Gitblit v1.8.0