|
|
@@ -4,9 +4,12 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.uas.account.AccountConfig;
|
|
|
import com.uas.sso.*;
|
|
|
-import com.uas.sso.bihe.entity.BiHeInfo;
|
|
|
-import com.uas.sso.bihe.entity.BiHeResult;
|
|
|
-import com.uas.sso.bihe.service.BiHeService;
|
|
|
+import com.uas.sso.foreign.ForeignFactory;
|
|
|
+import com.uas.sso.foreign.ForeignInfo;
|
|
|
+import com.uas.sso.foreign.ForeignService;
|
|
|
+import com.uas.sso.foreign.bihe.entity.BiHeInfo;
|
|
|
+import com.uas.sso.foreign.bihe.entity.BiHeResult;
|
|
|
+import com.uas.sso.foreign.bihe.service.BiHeService;
|
|
|
import com.uas.sso.common.util.HttpUtil;
|
|
|
import com.uas.sso.core.Const;
|
|
|
import com.uas.sso.entity.*;
|
|
|
@@ -14,8 +17,8 @@ import com.uas.sso.entity.Token;
|
|
|
import com.uas.sso.service.*;
|
|
|
import com.uas.sso.util.*;
|
|
|
import com.uas.sso.web.waf.request.WafRequestWrapper;
|
|
|
-import com.uas.sso.weixin.entity.OAuthInfo;
|
|
|
-import com.uas.sso.weixin.service.WeChatService;
|
|
|
+import com.uas.sso.foreign.weixin.entity.OAuthInfo;
|
|
|
+import com.uas.sso.foreign.weixin.service.WeChatService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.util.Assert;
|
|
|
@@ -842,9 +845,9 @@ public class LoginController extends BaseController {
|
|
|
public ModelMap bhLogin(@RequestParam(defaultValue = "city") String appId, String code) {
|
|
|
// 获取用户信息
|
|
|
User user = null;
|
|
|
- BiHeResult<BiHeInfo> oAuthInfo = biHeService.getOAuthInfoByCode(code);
|
|
|
+ BiHeInfo oAuthInfo = biHeService.getOAuthInfoByCode(code);
|
|
|
|
|
|
- String accessToken = Optional.ofNullable(oAuthInfo).map(BiHeResult::getData).map(BiHeInfo::getAccessToken).orElse(null);
|
|
|
+ String accessToken = Optional.ofNullable(oAuthInfo).map(BiHeInfo::getAccessToken).orElse(null);
|
|
|
if (StringUtils.isEmpty(accessToken)) {
|
|
|
Long userUU = (Long) request.getSession().getAttribute("userUU");
|
|
|
if (userUU == null) {
|
|
|
@@ -852,13 +855,59 @@ public class LoginController extends BaseController {
|
|
|
}
|
|
|
user = new User(userUU);
|
|
|
} else {
|
|
|
- user = userService.findByBhOpenId(oAuthInfo.getData().getOpenId());
|
|
|
+ user = userService.findByBhOpenId(oAuthInfo.getOpenId());
|
|
|
// user为空提示未注册,不为空则放入session绑定用户使用
|
|
|
if (user == null) {
|
|
|
// 提示前端用户微信未绑定账号
|
|
|
- ModelMap map = new ModelMap("data", oAuthInfo.getData());
|
|
|
+ ModelMap map = new ModelMap("data", oAuthInfo);
|
|
|
+ map.put("type", "bihe");
|
|
|
+ Token token = new Token(map, oAuthInfo.getExpires_in());
|
|
|
+ tokenService.save(token);
|
|
|
+ ModelMap data = new ModelMap("hasRegister", false);
|
|
|
+ data.put("token", token.getId());
|
|
|
+ return success(data);
|
|
|
+ }
|
|
|
+ request.getSession().setAttribute("userUU", user.getUserUU());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 登录
|
|
|
+ WafRequestWrapper wr = new WafRequestWrapper(request);
|
|
|
+ String spaceUU = wr.getParameter("spaceUU");
|
|
|
+ String returnUrl = wr.getParameter("returnUrl");
|
|
|
+ String baseUrl = wr.getParameter("baseUrl");
|
|
|
+ request.getSession().setAttribute("baseUrl", baseUrl);
|
|
|
+ return success(login(user.getUserUU(), appId, spaceUU, returnUrl));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 碧合登录接口
|
|
|
+ * @param appId 应用id(优软云应用id)
|
|
|
+ * @param code 第三方获取用户信息code
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/foreignLogin", method = RequestMethod.POST)
|
|
|
+ public ModelMap foreignLogin(@RequestParam(defaultValue = "city") String appId, String code, String type) {
|
|
|
+ // 获取用户信息
|
|
|
+ User user = null;
|
|
|
+ ForeignService foreignService = ForeignFactory.getForeignService(type);
|
|
|
+ ForeignInfo foreignInfo = foreignService.getOAuthInfoByCode(code);
|
|
|
+
|
|
|
+ String accessToken = Optional.ofNullable(foreignInfo).map(ForeignInfo::getForeignAccessToken).orElse(null);
|
|
|
+ if (StringUtils.isEmpty(accessToken)) {
|
|
|
+ Long userUU = (Long) request.getSession().getAttribute("userUU");
|
|
|
+ if (userUU == null) {
|
|
|
+ return error("验证信息过期");
|
|
|
+ }
|
|
|
+ user = new User(userUU);
|
|
|
+ } else {
|
|
|
+ user = userService.findByForeignId(foreignInfo);
|
|
|
+ // user为空提示未注册,不为空则放入session绑定用户使用
|
|
|
+ if (user == null) {
|
|
|
+ // 提示前端用户微信未绑定账号
|
|
|
+ ModelMap map = new ModelMap("data", foreignInfo);
|
|
|
map.put("type", "bihe");
|
|
|
- Token token = new Token(map, oAuthInfo.getData().getExpires_in());
|
|
|
+ Token token = new Token(map, foreignInfo.getForeignExpiresIn());
|
|
|
tokenService.save(token);
|
|
|
ModelMap data = new ModelMap("hasRegister", false);
|
|
|
data.put("token", token.getId());
|