Просмотр исходного кода

[微信第三方登录][修改]:登录

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
c7193c8a13
1 измененных файлов: 20 добавлений и 3 удалений
  1. +20
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java

+ 20
- 3
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.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;


@@ -37,10 +38,20 @@ public class WechatLoginController extends BaseController {


@ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri") @ApiOperation(value = "微信网页登录回调", notes = "请配置此callback到网页redirect_uri")
@GetMapping("callback") @GetMapping("callback")
public ResultData getAccessToken(String code) {
@ResponseBody
public ResultData getAccessToken(String code, HttpServletResponse response) {
ResultData r = new ResultData(); ResultData r = new ResultData();
try { try {
WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code); 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 是否是已授权用户 // check user openid 是否是已授权用户
MallUserInfo user = mallUserInfoService.getByWebOpenId(accessToken.getOpenId()); MallUserInfo user = mallUserInfoService.getByWebOpenId(accessToken.getOpenId());
if(user != null) { if(user != null) {
@@ -64,9 +75,15 @@ public class WechatLoginController extends BaseController {
Map<String, String> map = new HashMap<String, String>(); Map<String, String> map = new HashMap<String, String>();
map.put("accessToken", accessToken.getAccessToken()); map.put("accessToken", accessToken.getAccessToken());
map.put("openId", accessToken.getOpenId()); map.put("openId", accessToken.getOpenId());
map.put("unionId", accessToken.getUnionId());
//map.put("unionId", accessToken.getUnionId());
r.data = map; 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; return r;
} catch (WxErrorException e) { } catch (WxErrorException e) {
log.error(e.getMessage()); log.error(e.getMessage());


Загрузка…
Отмена
Сохранить