记得上下班打卡 | git大法好,push需谨慎

Commit 6bb21eed authored by 姜秀龙's avatar 姜秀龙

login/nia作为单出获取 pid

parent 158a4397
...@@ -8,17 +8,18 @@ import lombok.Getter; ...@@ -8,17 +8,18 @@ import lombok.Getter;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 网证认证成功但未绑定本站账号时,随 10006 返回给前端,用于后续 bindTpa / login/tpa 注册绑定。 * 网证认证成功返回,仅做身份认证不判断绑定。
* 前端拿到 openId 后自行调用 login/tpa 完成登录/注册绑定判断。
*/ */
@Getter @Getter
@Builder @Builder
@ApiModel(value = "AdamNiaUnboundVo", description = "网证未绑定账号时的绑定凭证") @ApiModel(value = "AdamNiaAuthVo", description = "网证认证结果")
public class AdamNiaUnboundVo implements Serializable { public class AdamNiaAuthVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "平台类型,固定 NIA") @ApiModelProperty(value = "平台类型,固定 NIA")
private final String platform; private final String platform;
@ApiModelProperty(value = "网证用户唯一标识(40字节标识的标准Base64,56字符),绑定时原样作为 openId 回传") @ApiModelProperty(value = "网证用户唯一标识(40字节标识的标准Base64,56字符),作为 login/tpa 的 openId 使用")
private final String openId; private final String openId;
} }
...@@ -333,15 +333,11 @@ public class AdamLoginController { ...@@ -333,15 +333,11 @@ public class AdamLoginController {
} }
@ApiOperationSupport(order = 8) @ApiOperationSupport(order = 8)
@ApiOperation(value = "国家网络身份认证登录") @ApiOperation(value = "国家网络身份认证", notes = "仅做身份认证并返回 openId,前端拿到后调用 login/tpa 完成登录/注册绑定")
@PostMapping(value = {"login/nia"}) @PostMapping(value = {"login/nia"})
public ResponseDto<?> loginByNia(@Valid @RequestBody AdamNiaLoginParam param) { public ResponseDto<?> loginByNia(@Valid @RequestBody AdamNiaLoginParam param) {
log.info("login by nia, bizSeq={}", param.getBizSeq()); log.info("login by nia, bizSeq={}", param.getBizSeq());
ResponseDto<?> loginResp = adamNiaLoginService.login(param); return adamNiaLoginService.login(param);
if (!loginResp.isSuccess()) {
return loginResp;
}
return this.loginVoResponseProcessing((AdamLoginInfoVo) loginResp.getData());
} }
@ApiOperationSupport(order = 7) @ApiOperationSupport(order = 7)
......
...@@ -6,13 +6,8 @@ import com.liquidnet.common.third.secureaccess.model.NiaAuthResult; ...@@ -6,13 +6,8 @@ import com.liquidnet.common.third.secureaccess.model.NiaAuthResult;
import com.liquidnet.common.third.secureaccess.util.NiaPidUtils; import com.liquidnet.common.third.secureaccess.util.NiaPidUtils;
import com.liquidnet.service.adam.constant.AdamTpaConst; import com.liquidnet.service.adam.constant.AdamTpaConst;
import com.liquidnet.service.adam.dto.AdamNiaLoginParam; import com.liquidnet.service.adam.dto.AdamNiaLoginParam;
import com.liquidnet.service.adam.dto.vo.AdamLoginInfoVo; import com.liquidnet.service.adam.dto.vo.AdamNiaAuthVo;
import com.liquidnet.service.adam.dto.vo.AdamNiaUnboundVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamNiaLoginService; import com.liquidnet.service.adam.service.IAdamNiaLoginService;
import com.liquidnet.service.adam.support.AdamUserSessionSupport;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -24,8 +19,6 @@ import org.springframework.stereotype.Service; ...@@ -24,8 +19,6 @@ import org.springframework.stereotype.Service;
public class AdamNiaLoginServiceImpl implements IAdamNiaLoginService { public class AdamNiaLoginServiceImpl implements IAdamNiaLoginService {
private final NiaAuthBiz niaAuthBiz; private final NiaAuthBiz niaAuthBiz;
private final AdamRdmService adamRdmService;
private final AdamUserSessionSupport adamUserSessionSupport;
@Override @Override
public ResponseDto<?> login(AdamNiaLoginParam param) { public ResponseDto<?> login(AdamNiaLoginParam param) {
...@@ -56,30 +49,12 @@ public class AdamNiaLoginServiceImpl implements IAdamNiaLoginService { ...@@ -56,30 +49,12 @@ public class AdamNiaLoginServiceImpl implements IAdamNiaLoginService {
return ResponseDto.failure("10005", "网证认证失败,请重试"); return ResponseDto.failure("10005", "网证认证失败,请重试");
} }
String openId = authResult.getOpenId(); AdamNiaAuthVo authVo = AdamNiaAuthVo.builder()
String uid = adamRdmService.getUidByPlatformOpenId(AdamTpaConst.PLATFORM_NIA, openId); .platform(AdamTpaConst.PLATFORM_NIA)
if (uid == null || uid.isEmpty()) { .openId(authResult.getOpenId())
AdamNiaUnboundVo unboundVo = AdamNiaUnboundVo.builder() .build();
.platform(AdamTpaConst.PLATFORM_NIA) log.info("[nia-login] 认证成功 bizSeq={}, bizSerialNo={}, openId={}",
.openId(openId) param.getBizSeq(), authResult.getBizSerialNo(), authResult.getOpenId());
.build(); return ResponseDto.success(authVo);
log.info("[nia-login] 未绑定 bizSeq={}, bizSerialNo={}, openId={}",
param.getBizSeq(), authResult.getBizSerialNo(), openId);
return ResponseDto.failure(ErrorMapping.get("10006"), unboundVo);
}
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
if (userInfoVo == null || userInfoVo.getState() == 2) {
log.warn("[nia-login] cancelled openId={}", openId);
return ResponseDto.failure(ErrorMapping.get("10024"));
}
AdamLoginInfoVo loginInfoVo = AdamLoginInfoVo.getNew();
loginInfoVo.setUserInfo(userInfoVo);
loginInfoVo.setUserMemberVo(adamRdmService.getUserMemberVoByUid(uid));
loginInfoVo.setToken(adamUserSessionSupport.issueToken(userInfoVo));
log.info("[nia-login] LOGIN uid={}, openId={}", uid, openId);
return ResponseDto.success(loginInfoVo);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment