|
@@ -11,29 +11,25 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 认证控制器
|
|
* 认证控制器
|
|
|
- * 处理用户登录、注册、验证码等请求
|
|
|
|
|
- *
|
|
|
|
|
- * 完整登录流程:
|
|
|
|
|
- * 1. /auth/sys/miniapp/custom/openid - 检查是否为老用户(静默登录)
|
|
|
|
|
- * 2. /auth/sys/miniapp/custom/check - 验证手机号(新用户)
|
|
|
|
|
- * 3. /auth/sys/miniapp/custom/login - 完善用户信息(首次登录)
|
|
|
|
|
|
|
+ * 处理用户登录、注册相关请求
|
|
|
|
|
+ *
|
|
|
*/
|
|
*/
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@RestController
|
|
@RestController
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
|
-@RequestMapping("/auth/sys/miniapp")
|
|
|
|
|
|
|
+@RequestMapping("/v1/auth/wx")
|
|
|
public class AuthController {
|
|
public class AuthController {
|
|
|
|
|
|
|
|
private final AuthService authService;
|
|
private final AuthService authService;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 第一步:微信静默登录(检查是否为老用户)
|
|
* 第一步:微信静默登录(检查是否为老用户)
|
|
|
- * 接口路径:/auth/sys/miniapp/custom/openid
|
|
|
|
|
|
|
+ * 接口路径:POST /v1/auth/wx/silent-login
|
|
|
*
|
|
*
|
|
|
* @param dto 包含 loginCode
|
|
* @param dto 包含 loginCode
|
|
|
* @return 老用户返回 { isSign: "true", token },新用户返回 { isSign: "false" }
|
|
* @return 老用户返回 { isSign: "true", token },新用户返回 { isSign: "false" }
|
|
|
*/
|
|
*/
|
|
|
- @PostMapping("/custom/openid")
|
|
|
|
|
|
|
+ @PostMapping("/silent-login")
|
|
|
public Result<WxLoginCheckVO> wxSilentLogin(@RequestBody WxSilentLoginDTO dto) {
|
|
public Result<WxLoginCheckVO> wxSilentLogin(@RequestBody WxSilentLoginDTO dto) {
|
|
|
log.info("【第一步】微信静默登录,loginCode: {}", dto.getLoginCode());
|
|
log.info("【第一步】微信静默登录,loginCode: {}", dto.getLoginCode());
|
|
|
|
|
|
|
@@ -52,22 +48,21 @@ public class AuthController {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 第二步:手机号授权验证(新用户)
|
|
* 第二步:手机号授权验证(新用户)
|
|
|
- * 接口路径:/auth/sys/miniapp/custom/check
|
|
|
|
|
|
|
+ * 接口路径:POST /v1/auth/wx/phone-verify
|
|
|
*
|
|
*
|
|
|
* @param dto 包含 loginCode, phoneCode, encryptedData, iv
|
|
* @param dto 包含 loginCode, phoneCode, encryptedData, iv
|
|
|
* @return 已注册返回 { isSign: "true", token },未注册返回 { isSign: "false", openid, unionid, phoneNumber }
|
|
* @return 已注册返回 { isSign: "true", token },未注册返回 { isSign: "false", openid, unionid, phoneNumber }
|
|
|
*/
|
|
*/
|
|
|
- @PostMapping("/custom/check")
|
|
|
|
|
- public Result<WxLoginCheckVO> wxPhoneCheck(@RequestBody WxPhoneLoginDTO dto) {
|
|
|
|
|
- log.info("【第二步】手机号授权验证,loginCode: {}, phoneCode: {}",
|
|
|
|
|
- dto.getLoginCode(), dto.getPhoneCode());
|
|
|
|
|
|
|
+ @PostMapping("/phone-verify")
|
|
|
|
|
+ public Result<WxLoginCheckVO> wxPhoneVerify(@RequestBody WxPhoneLoginDTO dto) {
|
|
|
|
|
+ log.info("【第二步】手机号授权验证,loginCode: {}", dto.getLoginCode());
|
|
|
|
|
|
|
|
if (dto.getLoginCode() == null || dto.getLoginCode().isEmpty()) {
|
|
if (dto.getLoginCode() == null || dto.getLoginCode().isEmpty()) {
|
|
|
return Result.error("登录code不能为空");
|
|
return Result.error("登录code不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (dto.getPhoneCode() == null || dto.getPhoneCode().isEmpty()) {
|
|
|
|
|
- return Result.error("手机号授权code不能为空");
|
|
|
|
|
|
|
+ if (dto.getEncryptedData() == null || dto.getIv() == null) {
|
|
|
|
|
+ return Result.error("手机号加密数据不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
@@ -81,13 +76,13 @@ public class AuthController {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 第三步:完善用户信息(首次登录)
|
|
* 第三步:完善用户信息(首次登录)
|
|
|
- * 接口路径:/auth/sys/miniapp/custom/login
|
|
|
|
|
|
|
+ * 接口路径:POST /v1/auth/wx/register
|
|
|
*
|
|
*
|
|
|
* @param dto 包含 openid, unionid, phoneNumber, nickname, avatarUrl
|
|
* @param dto 包含 openid, unionid, phoneNumber, nickname, avatarUrl
|
|
|
* @return 返回 { token }
|
|
* @return 返回 { token }
|
|
|
*/
|
|
*/
|
|
|
- @PostMapping("/custom/login")
|
|
|
|
|
- public Result<LoginVO> wxCompleteUserInfo(@RequestBody WxCompleteUserInfoDTO dto) {
|
|
|
|
|
|
|
+ @PostMapping("/register")
|
|
|
|
|
+ public Result<LoginVO> wxRegister(@RequestBody WxCompleteUserInfoDTO dto) {
|
|
|
log.info("【第三步】完善用户信息,openid: {}, phone: {}, nickname: {}",
|
|
log.info("【第三步】完善用户信息,openid: {}, phone: {}, nickname: {}",
|
|
|
dto.getOpenid(), dto.getPhoneNumber(), dto.getNickname());
|
|
dto.getOpenid(), dto.getPhoneNumber(), dto.getNickname());
|
|
|
|
|
|