|
@@ -82,6 +82,7 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
|
|
|
throw new BadCredentialsException("小程序授权失败,请联系管理员");
|
|
|
}
|
|
|
|
|
|
+ String openid;
|
|
|
try {
|
|
|
// 校验请求jscode的合法
|
|
|
WxMaJscode2SessionResult sessionret = wxMaService.getUserService().getSessionInfo(smsCode);
|
|
@@ -90,34 +91,30 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
|
|
|
log.warn("genRequestAuthorityTokenInfo JSCODE, ret={}", JSON.toJSONString(sessionret));
|
|
|
throw new BadCredentialsException("小程序授权失败,请重新授权");
|
|
|
}
|
|
|
-
|
|
|
// 用户openid
|
|
|
- String openid = sessionret.getOpenid();
|
|
|
- // 用户关联ID
|
|
|
- // String unionid = sessionret.getUnionid();
|
|
|
-
|
|
|
- // 根据用户授权openid,查询机构员工绑定信息
|
|
|
- SysUser sysUser = sysUserService.getSysUserByOpenId(openid);
|
|
|
- if (Objects.isNull(sysUser)) {
|
|
|
- throw new BizException("用户不存在");
|
|
|
- }
|
|
|
-
|
|
|
- // 重置登陆账号信息
|
|
|
- username = SecurityConstants.PHONE_PRINCIPAL_PREFIX + sysUser.getPhone();
|
|
|
-
|
|
|
- String clientId = loginEntity.getClientId();
|
|
|
- String deviceNum = loginEntity.getDeviceNum();
|
|
|
-
|
|
|
- // 绑定设备
|
|
|
- if (StringUtils.isNotBlank(deviceNum)) {
|
|
|
- sysUserDeviceService.bindDevice(clientId, sysUser.getId(), deviceNum);
|
|
|
- }
|
|
|
+ openid = sessionret.getOpenid();
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
log.error("genRequestAuthorityTokenInfo WX_OAUTH2, appid={}, jscode={}", phone, smsCode, e);
|
|
|
throw new BadCredentialsException("小程序授权已失效,请重新登陆");
|
|
|
}
|
|
|
|
|
|
+ String clientId = loginEntity.getClientId();
|
|
|
+ String deviceNum = loginEntity.getDeviceNum();
|
|
|
+ // 根据用户授权openid,查询机构员工绑定信息
|
|
|
+ SysUser sysUser = sysUserService.getSysUserByOpenId(openid, clientId);
|
|
|
+ if (Objects.isNull(sysUser)) {
|
|
|
+ throw new BizException("用户不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 重置登陆账号信息
|
|
|
+ username = SecurityConstants.PHONE_PRINCIPAL_PREFIX + sysUser.getPhone();
|
|
|
+
|
|
|
+ // 绑定设备
|
|
|
+ if (StringUtils.isNotBlank(deviceNum)) {
|
|
|
+ sysUserDeviceService.bindDevice(clientId, sysUser.getId(), deviceNum);
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
|
|
|
// 其他登陆方式
|