文章目录
前言
在Spring Boot应用中,接口防抖(也称为防重复提交)是一个常见需求,特别是在处理表单提交、支付请求等敏感操作时。以下是一些常见的实现方案:
一、基于Token的机制
实现步骤:
1.1 生成Token
在用户打开表单页面时,生成一个唯一的Token,并将其存储在Session或Redis中。
1.2表单携带Token
将生成的Token作为隐藏字段添加到表单中。
1.2提交时验证Token
用户提交表单时,后端验证Token是否有效且未被使用。如果有效,处理请求并标记Token为已使用;如果无效或已使用,则返回错误。
// 生成Token并存储在Session中
@GetMapping("/form")
public String showForm(HttpSession session) {
String token = UUID.randomUUID().toString();
session.setAttribute("token", token);
return "formPage"; // 返回表单页面,页面中包含隐藏的Token字段
}
// 提交表单时验证Token
@PostMapping("/submit")
public ResponseEntity<String> submitForm(@RequestParam("token") String token, HttpSession session) {
String sessionToken = (String) session.getAttribute("token");
if (sessionToken == null || !sessionToken.equals(token)) {
return ResponseEntity.badRequest().

最低0.47元/天 解锁文章
1630

被折叠的 条评论
为什么被折叠?



