TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 299 subscribers
Post #1961 1
PHP 表单 reCAPTCHA v3 超时修复方案

reCAPTCHA v3 令牌生成后仅两分钟有效,且只能验证一次。许多教程在页面加载时就请求令牌,导致用户填写较慢时提交已过期的令牌,出现验证失败。
修复方法是将 grecaptcha.execute() 移到表单提交处理程序中,在发送前才请求令牌,并在服务器端只验证一次。需要 PHP 开启 cURL 扩展,并从 reCAPTCHA 管理后台获取站点密钥和密钥。config.php 中建议将阈值设为 0.5,并从环境变量读取密钥,不要提交到 Git。
服务器端使用 cURL 调用 Google 验证接口,避免 allow_url_fopen 被禁用的问题,并能获得更清晰的错误信息。同一令牌不能重复验证,第二次调用会直接失败。表单按钮建议在提交时禁用,防止重复点击发送相同令牌。
如果使用 AJAX 或 fetch 提交,也应在请求发出前立即请求令牌,重试时重新请求。页面中有多个表单时,给每个表单分配独立的 action 名称,传入对应的验证函数,避免令牌被跨表单误用。
不要尝试延长令牌有效期,Google 不提供此设置。定时刷新令牌也不是推荐做法,后台标签页计时器可能被浏览器限制,旧标签页返回时仍可能提交过期令牌。以提交时生成令牌为主。
More from @devtoolboxhub
  1. Oct 18, 2026Postgres 物化视图自动刷新扩展 pg_ivm 1.16 发布 pg_ivm 是 PostgreSQL 的物化视图增量维护扩展。它在基表变更的同一事务内通过触发器更新视图,避…
  2. Oct 18, 2026Postgres 向量索引新方案 pg_vectorsearch 发布 pgvector 在构建 HNSW 索引时,数据量大后内存吃紧,索引构建极慢,查询也会掉到磁盘。Tiger…
  3. Oct 17, 2026JTL Cloud Apps 发布六款示例应用 JTL 在科隆学院日活动上,现场用 Claude Code 构建并测试了六款 JTL Cloud App,涵盖补货建议、首单欢迎邮件…
  4. Oct 17, 2026大模型账单异常,先排查这四个常见原因 账单突然变高,通常不是模型太贵,而是成本在某个环节泄漏。长提示词、冗长输出、重试与 Agent 循环、模型选型不当,都可能让费用超出预算。 逐…
  5. Oct 17, 2026用启动文件给 AI 编程助手定上下文 Postman AI 工程师 Sterling Chin 介绍了他自建的 AI 编程助手 Marvin。Marvin 基于 Claude Co…
  6. Oct 16, 2026上下文工程:防止 AI 工作流悄悄退化 AI 工作流不一定报错才出问题。提示词一字未改,输出却可能越来越不可靠。Search Engine Land 2026 年 10 月 8 日…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →