|
@@ -5,8 +5,13 @@ import cn.iselab.mooctest.user.constants.ResponseStatus;
|
|
|
import cn.iselab.mooctest.user.constants.UrlConstants;
|
|
|
import cn.iselab.mooctest.user.data.Callback;
|
|
|
import cn.iselab.mooctest.user.data.ResponseResult;
|
|
|
+import cn.iselab.mooctest.user.data.UserInfo;
|
|
|
+import cn.iselab.mooctest.user.model.User;
|
|
|
+import cn.iselab.mooctest.user.model.UserThirdParty;
|
|
|
+import cn.iselab.mooctest.user.service.ThirdPartyAuthService;
|
|
|
import cn.iselab.mooctest.user.util.EncryptionUtil;
|
|
|
import cn.iselab.mooctest.user.web.data.UserVO;
|
|
|
+import cn.iselab.mooctest.user.web.logic.ThirdPartyLogic;
|
|
|
import cn.iselab.mooctest.user.web.logic.UserLogic;
|
|
|
import com.sun.org.apache.xpath.internal.operations.Mod;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -28,6 +33,12 @@ public class PageController extends BaseController{
|
|
|
@Autowired
|
|
|
UserLogic userLogic;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ ThirdPartyLogic thirdPartyLogic;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ThirdPartyAuthService thirdPartyAuthService;
|
|
|
+
|
|
|
@RequestMapping(value = UrlConstants.PAGE + "login", method = RequestMethod.GET)
|
|
|
public String login(Callback callback, HttpServletRequest request){
|
|
|
System.out.println(System.currentTimeMillis());
|
|
@@ -105,6 +116,55 @@ public class PageController extends BaseController{
|
|
|
return "success_page";
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = UrlConstants.PAGE + "login/github", method = RequestMethod.GET)
|
|
|
+ public String loginByGithub(@RequestParam("code")String code, Model model, HttpServletRequest request){
|
|
|
+ ResponseResult<Object> result = new ResponseResult<>();
|
|
|
+ System.out.println("code: " + code);
|
|
|
+ result = thirdPartyLogic.loginByGithub(code, request);
|
|
|
+ if (result.getStatus()==ResponseStatus.NOTFOUND){
|
|
|
+ UserInfo userInfo = (UserInfo) result.getData();
|
|
|
+ model.addAttribute("thirdPartyName", userInfo.getNickname());
|
|
|
+ model.addAttribute("thirdPartyId", userInfo.getThirdPartyId());
|
|
|
+ model.addAttribute("headImg", userInfo.getHeadimgurl());
|
|
|
+ model.addAttribute("from", "github");
|
|
|
+ return "third_party_bind";
|
|
|
+ }
|
|
|
+ request.getSession().setAttribute("userId", ((UserThirdParty)result.getData()).getUserId());
|
|
|
+ String redirectUrl = (String)request.getSession().getAttribute("redirectURL");
|
|
|
+ if (redirectUrl==null || redirectUrl.isEmpty())
|
|
|
+ redirectUrl = UrlConstants.DFAULT_GOTO;
|
|
|
+ return "redirect:"+redirectUrl;
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = UrlConstants.PAGE + "thirdParty/bind", method = RequestMethod.POST)
|
|
|
+ public String thirdPartyBind(UserVO userVO, Model model, HttpServletRequest request){
|
|
|
+ UserVO user = userVO;
|
|
|
+ System.out.println(userVO.toString());
|
|
|
+ user.setPassword(EncryptionUtil.encryptMD5(user.getPassword()));
|
|
|
+ ResponseResult<UserDTO> result = userLogic.checkPWD(user);
|
|
|
+ if (result.getStatus()!=ResponseStatus.SUCCESS){
|
|
|
+ model.addAttribute("result", result);
|
|
|
+ model.addAttribute("thirdPartyName", userVO.getThirdPartyName());
|
|
|
+ model.addAttribute("thirdPartyId", userVO.getThirdPartyId());
|
|
|
+ model.addAttribute("headImg", userVO.getHeadImgUrl());
|
|
|
+ model.addAttribute("from", userVO.getFrom());
|
|
|
+ return "third_party_bind";
|
|
|
+ }
|
|
|
+ UserDTO userToBind = (UserDTO) result.getData();
|
|
|
+ UserThirdParty userThirdParty = new UserThirdParty();
|
|
|
+ userThirdParty.setThirdPartyIdentity(userVO.getThirdPartyId());
|
|
|
+ userThirdParty.setUserId(userToBind.getId());
|
|
|
+ userThirdParty.setType(userVO.getFrom());
|
|
|
+ userThirdParty.setIsDelete(0);
|
|
|
+ System.out.println(userThirdParty.getUserId()+"--"+userThirdParty.getThirdPartyIdentity()+"---"+userThirdParty.getType());
|
|
|
+ thirdPartyAuthService.save(userThirdParty);
|
|
|
+ request.getSession().setAttribute("userId", userThirdParty.getUserId());
|
|
|
+ String redirectUrl = (String)request.getSession().getAttribute("redirectURL");
|
|
|
+ if (redirectUrl==null || redirectUrl.isEmpty())
|
|
|
+ redirectUrl = UrlConstants.DFAULT_GOTO;
|
|
|
+ return "redirect:"+redirectUrl;
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = UrlConstants.PAGE + "forgetPassword/mobile", method = RequestMethod.GET)
|
|
|
public String forgetPassword(){
|
|
|
return "forget_password_mobile";
|