From a5b5f043faf033d66a07c1840d44790a264f8815 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 14 Feb 2019 13:45:32 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95][=E4=BF=AE=E6=94=B9]:=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WechatLoginController.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java index 3f61bc3f1..d99e8c18a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java @@ -11,13 +11,14 @@ import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; -import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; @@ -37,10 +38,20 @@ public class WechatLoginController extends BaseController { @ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri") @GetMapping("callback") - public ResultData getAccessToken(String code) { + @ResponseBody + public ResultData getAccessToken(String code, HttpServletResponse response) { ResultData r = new ResultData(); try { WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code); + // 保存 access_token 到 cookie,两小时过期 + Cookie accessTokencookie = new Cookie("accessToken", accessToken.getAccessToken()); + accessTokencookie.setMaxAge(60 *2); + response.addCookie(accessTokencookie); + + Cookie openIdCookie = new Cookie("openId", accessToken.getOpenId()); + openIdCookie.setMaxAge(60 *2); + response.addCookie(openIdCookie); + // check user openid 是否是已授权用户 MallUserInfo user = mallUserInfoService.getByWebOpenId(accessToken.getOpenId()); if(user != null) { @@ -64,9 +75,15 @@ public class WechatLoginController extends BaseController { Map map = new HashMap(); map.put("accessToken", accessToken.getAccessToken()); map.put("openId", accessToken.getOpenId()); - map.put("unionId", accessToken.getUnionId()); + //map.put("unionId", accessToken.getUnionId()); r.data = map; } +// if (user == null) { +// response.sendRedirect(request.getContextPath() + "/student/html/index.min.html#/bind?type="+Constants.LOGIN_TYPE_WECHAT); +// } else { +// //如果用户已存在,则直接登录 +// response.sendRedirect(request.getContextPath() + "/student/html/index.min.html#/app/home?open_id=" + openId); +// } return r; } catch (WxErrorException e) { log.error(e.getMessage());