bind_sn接口移动到user下
This commit is contained in:
@@ -37,59 +37,7 @@ public class BindSnController {
|
|||||||
Logger logger = LoggerFactory.getLogger(BindSnController.class);
|
Logger logger = LoggerFactory.getLogger(BindSnController.class);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户app发送绑定推送到手机
|
|
||||||
*
|
|
||||||
* @param authHeader
|
|
||||||
* @param deviceId
|
|
||||||
* @param userId
|
|
||||||
* @param sn
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@PostMapping("/bind_sn")
|
|
||||||
public Result bindSn(
|
|
||||||
@RequestHeader("Authorization") String authHeader, @RequestHeader("Device-ID") String deviceId,
|
|
||||||
@RequestParam(value = "user_id") String userId, @RequestParam(value = "sn") String sn) {
|
|
||||||
|
|
||||||
logger.info("bindSn: authHeader={}, deviceId={}, userId={}, sn={}", authHeader, deviceId, userId, sn);
|
|
||||||
if (!authHeader.startsWith("Bearer ")) {
|
|
||||||
return Result.error().message("Invalid Authorization header");
|
|
||||||
}
|
|
||||||
String token = authHeader.substring(7); // 去掉 "Bearer " 前缀
|
|
||||||
|
|
||||||
if (!jwtUtil.validateAccessToken(userId, token, deviceId)) {
|
|
||||||
return Result.error().message("Invalid token");
|
|
||||||
}
|
|
||||||
|
|
||||||
User user = userService.getUserByUserId(userId);
|
|
||||||
String userPhone = user.getPhone();
|
|
||||||
|
|
||||||
DeviceInfo deviceInfo = deviceSnService.findBySn(sn);
|
|
||||||
if (deviceInfo == null) {
|
|
||||||
return Result.error().message("sn not found");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TextUtils.isEmpty(deviceInfo.getBindPhone())) {
|
|
||||||
return Result.error().message("sn already bind");
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
String verifyKey = RandomStringUtils.randomAlphanumeric(32);
|
|
||||||
JsonObject params = new JsonObject();
|
|
||||||
params.addProperty("verify_key", verifyKey);
|
|
||||||
params.addProperty("phone", userPhone);
|
|
||||||
params.addProperty("expire_time", System.currentTimeMillis() + 60 * 1000);
|
|
||||||
|
|
||||||
// PushUtils.aliyunAsyncPush("1", params.toString(), sn);
|
|
||||||
DevicePushUtils.aliyunAsyncPush(PushIdConfig.BIND_DEVICE, sn, params.toString());
|
|
||||||
redisTemplate.opsForValue().set(sn, verifyKey, 1, TimeUnit.MINUTES);
|
|
||||||
return Result.ok().message("send message success");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return Result.error().message(e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 平板根据返回的数据绑定手机
|
* 平板根据返回的数据绑定手机
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.onekeycall.videotablet.controller.user;
|
package com.onekeycall.videotablet.controller.user;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
import com.onekeycall.videotablet.config.PushIdConfig;
|
import com.onekeycall.videotablet.config.PushIdConfig;
|
||||||
import com.onekeycall.videotablet.controller.pub.LoginController;
|
import com.onekeycall.videotablet.controller.pub.LoginController;
|
||||||
import com.onekeycall.videotablet.dto.TokenPair;
|
import com.onekeycall.videotablet.dto.TokenPair;
|
||||||
@@ -10,6 +11,7 @@ import com.onekeycall.videotablet.service.*;
|
|||||||
import com.onekeycall.videotablet.utils.DevicePushUtils;
|
import com.onekeycall.videotablet.utils.DevicePushUtils;
|
||||||
import com.onekeycall.videotablet.utils.JwtUtil;
|
import com.onekeycall.videotablet.utils.JwtUtil;
|
||||||
import com.onekeycall.videotablet.utils.TextUtils;
|
import com.onekeycall.videotablet.utils.TextUtils;
|
||||||
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -22,6 +24,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@@ -52,6 +55,59 @@ public class UserController {
|
|||||||
this.authenticationManager = authenticationManager;
|
this.authenticationManager = authenticationManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户app发送绑定推送到手机
|
||||||
|
*
|
||||||
|
* @param authHeader
|
||||||
|
* @param deviceId
|
||||||
|
* @param userId
|
||||||
|
* @param sn
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/bind_sn")
|
||||||
|
public Result bindSn(
|
||||||
|
@RequestHeader("Authorization") String authHeader, @RequestHeader("Device-ID") String deviceId,
|
||||||
|
@RequestParam(value = "user_id") String userId, @RequestParam(value = "sn") String sn) {
|
||||||
|
|
||||||
|
logger.info("bindSn: authHeader={}, deviceId={}, userId={}, sn={}", authHeader, deviceId, userId, sn);
|
||||||
|
if (!authHeader.startsWith("Bearer ")) {
|
||||||
|
return Result.error().message("Invalid Authorization header");
|
||||||
|
}
|
||||||
|
String token = authHeader.substring(7); // 去掉 "Bearer " 前缀
|
||||||
|
|
||||||
|
if (!jwtUtil.validateAccessToken(userId, token, deviceId)) {
|
||||||
|
return Result.error().message("Invalid token");
|
||||||
|
}
|
||||||
|
|
||||||
|
User user = userService.getUserByUserId(userId);
|
||||||
|
String userPhone = user.getPhone();
|
||||||
|
|
||||||
|
DeviceInfo deviceInfo = deviceSnService.findBySn(sn);
|
||||||
|
if (deviceInfo == null) {
|
||||||
|
return Result.error().message("sn not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(deviceInfo.getBindPhone())) {
|
||||||
|
return Result.error().message("sn already bind");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
String verifyKey = RandomStringUtils.randomAlphanumeric(32);
|
||||||
|
JsonObject params = new JsonObject();
|
||||||
|
params.addProperty("verify_key", verifyKey);
|
||||||
|
params.addProperty("phone", userPhone);
|
||||||
|
params.addProperty("expire_time", System.currentTimeMillis() + 60 * 1000);
|
||||||
|
|
||||||
|
// PushUtils.aliyunAsyncPush("1", params.toString(), sn);
|
||||||
|
DevicePushUtils.aliyunAsyncPush(PushIdConfig.BIND_DEVICE, sn, params.toString());
|
||||||
|
redisTemplate.opsForValue().set(sn, verifyKey, 1, TimeUnit.MINUTES);
|
||||||
|
return Result.ok().message("send message success");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return Result.error().message(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/refresh_token")
|
@PostMapping("/refresh_token")
|
||||||
public Result refreshToken(
|
public Result refreshToken(
|
||||||
|
|||||||
Reference in New Issue
Block a user