|
@@ -56,6 +56,7 @@ public class VirgoAuthenticationFilter extends AuthenticatingFilter {
|
|
String phone = null;
|
|
String phone = null;
|
|
String phoneCode = null;
|
|
String phoneCode = null;
|
|
String wxCode = null;
|
|
String wxCode = null;
|
|
|
|
+ String wxpCode = null;
|
|
LoginUserDto dto = null;
|
|
LoginUserDto dto = null;
|
|
try {
|
|
try {
|
|
BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
|
|
BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
|
|
@@ -72,17 +73,28 @@ public class VirgoAuthenticationFilter extends AuthenticatingFilter {
|
|
|
|
|
|
// 微信注册登录
|
|
// 微信注册登录
|
|
wxCode = dto.getCode();
|
|
wxCode = dto.getCode();
|
|
|
|
+ wxpCode = dto.getpCode();
|
|
if (wxCode != null) {
|
|
if (wxCode != null) {
|
|
- MgrUser user = mgrUserService.getByPhone(dto.getPhone());
|
|
|
|
|
|
+ if (wxpCode != null) {
|
|
|
|
+ phone = mgrUserService.phoneNumber(wxpCode);
|
|
|
|
+ } else {
|
|
|
|
+ // 携带手机验证码的
|
|
|
|
+ if (CodeCache.getKey(dto.getPhone()).equals(dto.getPhoneCode())) {
|
|
|
|
+ phone = dto.getPhone();
|
|
|
|
+ } else {
|
|
|
|
+ throw new AuthException("验证码有误", Constant.RET_AUTH_FAILED);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ MgrUser user = mgrUserService.getByPhone(phone);
|
|
init(mgrUserService.wxLogin(wxCode));
|
|
init(mgrUserService.wxLogin(wxCode));
|
|
if (user != null) {
|
|
if (user != null) {
|
|
- return createToken(dto.getPhone(), wxCode, request, response);
|
|
|
|
|
|
+ return createToken(phone, wxCode, request, response);
|
|
} else {
|
|
} else {
|
|
//注册
|
|
//注册
|
|
MgrUser u = new MgrUser();
|
|
MgrUser u = new MgrUser();
|
|
- u.setPhone(dto.getPhone());
|
|
|
|
- mgrUserService.register(u);
|
|
|
|
- return createToken(dto.getPhone(), wxCode, request, response);
|
|
|
|
|
|
+ u.setPhone(phone);
|
|
|
|
+ mgrUserService.wxRegister(u);
|
|
|
|
+ return createToken(phone, wxCode, request, response);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -93,20 +105,19 @@ public class VirgoAuthenticationFilter extends AuthenticatingFilter {
|
|
}
|
|
}
|
|
|
|
|
|
// 手机号验证码注册登录
|
|
// 手机号验证码注册登录
|
|
- String code = CodeCache.getKey(dto.getPhone());
|
|
|
|
|
|
+ phoneCode = CodeCache.getKey(dto.getPhone());
|
|
|
|
+ if (!dto.getPhoneCode().equals(phoneCode)) {
|
|
|
|
+ throw new AuthException("验证码有误", Constant.RET_AUTH_FAILED);
|
|
|
|
+ }
|
|
MgrUser user = mgrUserService.getByPhone(dto.getPhone());
|
|
MgrUser user = mgrUserService.getByPhone(dto.getPhone());
|
|
if (user != null) {
|
|
if (user != null) {
|
|
- if (dto.getPhoneCode().equals(code)) {
|
|
|
|
- phone = user.getPhone();
|
|
|
|
- phoneCode = code;
|
|
|
|
- }
|
|
|
|
|
|
+ phone = user.getPhone();
|
|
} else {
|
|
} else {
|
|
//注册
|
|
//注册
|
|
MgrUser u = new MgrUser();
|
|
MgrUser u = new MgrUser();
|
|
u.setPhone(dto.getPhone());
|
|
u.setPhone(dto.getPhone());
|
|
mgrUserService.register(u);
|
|
mgrUserService.register(u);
|
|
phone = dto.getPhone();
|
|
phone = dto.getPhone();
|
|
- phoneCode = code;
|
|
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("Can not create token", e);
|
|
log.error("Can not create token", e);
|
|
@@ -121,6 +132,7 @@ public class VirgoAuthenticationFilter extends AuthenticatingFilter {
|
|
mgrUserService.loadContext(subject);
|
|
mgrUserService.loadContext(subject);
|
|
if (wxJson != null) {
|
|
if (wxJson != null) {
|
|
JSONObject jsonObject = JSONObject.parseObject(wxJson);
|
|
JSONObject jsonObject = JSONObject.parseObject(wxJson);
|
|
|
|
+ release();
|
|
jsonObject.put("token", subject.getSession().getId().toString());
|
|
jsonObject.put("token", subject.getSession().getId().toString());
|
|
response.getWriter().write(JSON.toJSONString(Response.ok(jsonObject)));
|
|
response.getWriter().write(JSON.toJSONString(Response.ok(jsonObject)));
|
|
} else {
|
|
} else {
|