自动登录

pull/1/head
wqy 2 years ago
parent ba7b703775
commit 50bcc9e479

@ -55,10 +55,13 @@ public class WechatController2 {
if (object != null) { if (object != null) {
String openId = object.getString("openid"); String openId = object.getString("openid");
String sessionId = object.getString("session_key"); String sessionId = object.getString("session_key");
JSONObject obj = new JSONObject();
obj.put("openId", openId);
obj.put("sessionId", sessionId);
Map map = new HashMap(); Map map = new HashMap();
map.put("openId", openId); map.put("data", Base64Utils.encodeToString(JSON.toJSONString(obj).getBytes()));
map.put("sessionId", sessionId); map.put("token", memberWechatService.getToken(openId));
return AjaxResult.successData(Base64Utils.encodeToString(JSON.toJSONString(map).getBytes())); return AjaxResult.successData(map);
} }
return AjaxResult.success(null); return AjaxResult.success(null);
} }

@ -266,7 +266,7 @@ public class H5MemberService {
* @param memberId id * @param memberId id
* @return * @return
*/ */
private H5LoginResponse getLoginResponse(Long memberId){ public H5LoginResponse getLoginResponse(Long memberId){
LoginMember loginMember = new LoginMember(); LoginMember loginMember = new LoginMember();
loginMember.setMemberId(memberId); loginMember.setMemberId(memberId);
String token = tokenService.createMemberToken(loginMember); String token = tokenService.createMemberToken(loginMember);
@ -296,6 +296,15 @@ public class H5MemberService {
log.error("微信授权失败"); log.error("微信授权失败");
throw new RuntimeException("授权失败,请重试"); throw new RuntimeException("授权失败,请重试");
} }
//判断openid是否存在
QueryWrapper<MemberWechat> qw = new QueryWrapper<>();
qw.eq("openid", userToken.getOpenid());
MemberWechat memberWechat = memberWechatMapper.selectOne(qw);
if (memberWechat == null) {
return userToken;
}
Member member = memberMapper.selectById(memberWechat.getMemberId());
userToken.setToken(getLoginResponse(member.getId()).getToken());
return userToken; return userToken;
} }
@ -392,4 +401,8 @@ public class H5MemberService {
} }
return null; return null;
} }
public Member selectById(Long memberId) {
return memberMapper.selectById(memberId);
}
} }

@ -14,7 +14,10 @@ import com.cyl.external.WechatUtil;
import com.cyl.external.resp.AccessTokenResp; import com.cyl.external.resp.AccessTokenResp;
import com.cyl.external.resp.UserInfoResp; import com.cyl.external.resp.UserInfoResp;
import com.cyl.h5.pojo.vo.form.WechatLoginForm; import com.cyl.h5.pojo.vo.form.WechatLoginForm;
import com.cyl.h5.service.H5MemberService;
import com.cyl.manager.ums.convert.MemberWechatConvert; import com.cyl.manager.ums.convert.MemberWechatConvert;
import com.cyl.manager.ums.domain.Member;
import com.cyl.manager.ums.mapper.MemberMapper;
import com.cyl.wechat.WechatPayData; import com.cyl.wechat.WechatPayData;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
@ -54,6 +57,8 @@ public class MemberWechatService {
private SysLoginService loginService; private SysLoginService loginService;
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
@Autowired
private H5MemberService memberService;
private static String LOGIN_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=#{APPID}&secret=#{SECRET}&js_code=#{JSCODE}&grant_type=authorization_code"; private static String LOGIN_URL = "https://api.weixin.qq.com/sns/jscode2session?appid=#{APPID}&secret=#{SECRET}&js_code=#{JSCODE}&grant_type=authorization_code";
@ -230,4 +235,16 @@ public class MemberWechatService {
return null; return null;
} }
} }
public String getToken(String openId) {
//判断openid是否存在
QueryWrapper<MemberWechat> qw = new QueryWrapper<>();
qw.eq("routine_openid", openId);
MemberWechat memberWechat = memberWechatMapper.selectOne(qw);
if (memberWechat == null) {
return null;
}
Member member = memberService.selectById(memberWechat.getMemberId());
return memberService.getLoginResponse(member.getId()).getToken();
}
} }

@ -10,4 +10,6 @@ public class WechatUserAuth {
private String refresh_token; private String refresh_token;
private String openid; private String openid;
private String scope; private String scope;
//登录的token
private String token;
} }
Loading…
Cancel
Save