提交 e0622ed3 authored 作者: Whispa's avatar Whispa

commit commit

上级 32bf46d7
...@@ -230,111 +230,115 @@ public class AuthController extends Controller { ...@@ -230,111 +230,115 @@ public class AuthController extends Controller {
// } // }
// Check if firebase token is valid // Check if firebase token is valid
boolean isTokenValid = user.getToken() != null && validateFirebaseToken(user.getToken()); try {
boolean isTokenValid = user.getToken() != null && validateFirebaseToken(user.getToken());
String firebaseUid = user.getFirebaseUid(); String firebaseUid = user.getFirebaseUid();
// if valid do sign in if firebase Uid exist in database or register as new user // if valid do sign in if firebase Uid exist in database or register as new user
if (isTokenValid) { if (isTokenValid) {
//Query to find user from database by firebase uid //Query to find user from database by firebase uid
Optional<TbCfUserInfo> optional = userRepository.findByFirebaseUid(firebaseUid); Optional<TbCfUserInfo> optional = userRepository.findByFirebaseUid(firebaseUid);
if (!optional.isPresent() && user.getEmail() != null && !user.getEmail().isEmpty() && userRepository.existsByAccount(user.getEmail())) { if (!optional.isPresent() && user.getEmail() != null && !user.getEmail().isEmpty() && userRepository.existsByAccount(user.getEmail())) {
optional = userRepository.findFirstByAccount(user.getEmail()); optional = userRepository.findFirstByAccount(user.getEmail());
} }
if (!optional.isPresent() && user.getPhone() != null && !user.getPhone().isEmpty() && userRepository.existsByAccount(user.getPhone().replace("+", ""))) { if (!optional.isPresent() && user.getPhone() != null && !user.getPhone().isEmpty() && userRepository.existsByAccount(user.getPhone().replace("+", ""))) {
optional = userRepository.findFirstByAccount(user.getPhone().replace("+", "")); optional = userRepository.findFirstByAccount(user.getPhone().replace("+", ""));
} }
if (!optional.isPresent()) { if (!optional.isPresent()) {
String userid = IdUtil.createIdbyUUID(); String userid = IdUtil.createIdbyUUID();
// user.setPassword(encoder.encode(firebaseUid)); // user.setPassword(encoder.encode(firebaseUid));
user.setUserId(userid); user.setUserId(userid);
fillUserNecessayInfo(user); fillUserNecessayInfo(user);
user = userRepository.save(user); user = userRepository.save(user);
//赠送用户优惠券 //赠送用户优惠券
fixCoupon(user); fixCoupon(user);
} else { } else {
TbCfUserInfo userInfo = optional.get(); TbCfUserInfo userInfo = optional.get();
if (user.hasFcm()) { if (user.hasFcm()) {
userInfo.setFcm(user.getFcm()); userInfo.setFcm(user.getFcm());
} }
if (userInfo.getFirebaseUid() == null) { if (userInfo.getFirebaseUid() == null) {
userInfo.setFirebaseUid(firebaseUid); userInfo.setFirebaseUid(firebaseUid);
} }
String property = domainProperties.getProperty("user.avatar"); String property = domainProperties.getProperty("user.avatar");
property = property == null ? "" : property; property = property == null ? "" : property;
boolean b = property.equals(userInfo.getAvatar()) || userInfo.getAvatar() == null || userInfo.getAvatar().isEmpty(); boolean b = property.equals(userInfo.getAvatar()) || userInfo.getAvatar() == null || userInfo.getAvatar().isEmpty();
if (user.getAvatar() != null && b) { if (user.getAvatar() != null && b) {
userInfo.setAvatar(user.getAvatar()); userInfo.setAvatar(user.getAvatar());
} }
boolean b1 = userInfo.getNick() == null || userInfo.getNick().isEmpty(); boolean b1 = userInfo.getNick() == null || userInfo.getNick().isEmpty();
if (user.getNick() != null && b1) { if (user.getNick() != null && b1) {
userInfo.setNick(user.getNick()); userInfo.setNick(user.getNick());
} }
if (user.getEmail() != null) { if (user.getEmail() != null) {
userInfo.setEmail(user.getEmail()); userInfo.setEmail(user.getEmail());
} }
if (user.getUserType() != null) { if (user.getUserType() != null) {
userInfo.setUserType(user.getUserType()); userInfo.setUserType(user.getUserType());
} }
if (user.getPhone() != null) { if (user.getPhone() != null) {
userInfo.setPhone(user.getPhone()); userInfo.setPhone(user.getPhone());
} }
user = userInfo; user = userInfo;
} }
fixCode(user); fixCode(user);
//addToNetwork(user); //addToNetwork(user);
user.setLastLoginTime(new Date()); user.setLastLoginTime(new Date());
userRepository.save(user); userRepository.save(user);
//注册成功 创建token //注册成功 创建token
Authentication authentication; Authentication authentication;
try { try {
authentication = new UsernamePasswordAuthenticationToken(UserDetailsImpl.build(user), null); authentication = new UsernamePasswordAuthenticationToken(UserDetailsImpl.build(user), null);
} catch (BadCredentialsException e) { } catch (BadCredentialsException e) {
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid username or password"); return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(), "Invalid username or password");
} }
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
String jwt = jwtUtils.generateJwtToken(authentication); String jwt = jwtUtils.generateJwtToken(authentication);
user.setToken(jwt); user.setToken(jwt);
return new Result<>(user); return new Result<>(user);
} else { } else {
return new Result<>(ResultCodeEnum.ILLEGAL_ARGUMENT.getCode(), ResultCodeEnum.ILLEGAL_ARGUMENT.getDesc()); return new Result<>(ResultCodeEnum.ILLEGAL_ARGUMENT.getCode(), ResultCodeEnum.ILLEGAL_ARGUMENT.getDesc());
} }
}catch (Exception e){
return new Result(ResultCodeEnum.VALIDATE_ERROR.getCode(),e.getMessage());
}
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论