| | |
| | | |
| | | @GetMapping("/idempotency/token") |
| | | @ApiOperation("获取一次性防重复提交 Token") |
| | | public Result<Object> getIdempotencyToken(@RequestParam(required = false) Long userId) { |
| | | public Result<Object> getIdempotencyToken(@RequestParam(required = false) String userId) { |
| | | try { |
| | | String token = tokenService.generateToken(userId); |
| | | return Result.success("token生成",token); |
| | |
| | | * @param userId 可选的用户ID,仅用于追踪 |
| | | * @return token 字符串 |
| | | */ |
| | | String generateToken(Long userId); |
| | | String generateToken(String userId); |
| | | |
| | | /** |
| | | * 校验并消费 Token(一次性)。成功返回 true,失败/不存在/过期返回 false。 |
| | |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | @Override |
| | | public String generateToken(Long userId) { |
| | | public String generateToken(String userId) { |
| | | String token = UUID.randomUUID().toString().replace("-", ""); |
| | | String key = IDEMPOTENCY_TOKEN_PREFIX + token; |
| | | // 值不重要,设置一个标记即可 |