EVT 入门指南:Email Verification API 的 Email Verification Token 结构与字段全解析
EVT 入门指南Email Verification API 的 Email Verification Token 结构与字段全解析【免费下载链接】email-verificationverified autofill项目地址: https://gitcode.com/GitHub_Trending/em/email-verificationEmail Verification API是 W3C 社区孵化中的浏览器原生邮箱验证方案注册、登录或找回密码时网站不再需要发送验证码邮件或魔法链接浏览器会直接向邮箱服务商申请一枚邮箱验证令牌Email Verification Token简称 EVT并自动填入表单用密码学证明代替人工验证。下面从新手视角拆解 EVT 的三层令牌结构与每个关键字段帮你在 10 分钟内读懂这套免验证码邮箱验证协议。为什么需要 EVT告别去邮箱查收验证码 传统邮箱验证是一趟往返旅程网站生成随机码 → 发到收件箱 → 用户切到邮箱应用、复制验证码再粘贴回来。它的问题慢自动邮件到达有延迟还常掉进垃圾箱高摩擦用户要在网站和邮箱应用之间反复切换有风险钓鱼网站可以诱导用户填入刚收到的验证码贵注册漏斗的流失率直接拉高获客成本。提案背景给出的数据很直观全球访问最高的 50 个网站中 95% 支持邮箱注册其中 73% 要求先完成邮箱验证才能建号——邮箱验证几乎是每个用户的必经之路。EVT 的目标就是让这一步零感知用户只需选中一个邮箱地址剩下的由浏览器搞定。三方角色谁申请、谁签发、谁验证 角色是谁职责Verifier验证方请求验证的网站在表单中声明需要 EVT收到令牌后完成校验User Agent用户代理浏览器可信中介发现发行方、检查登录态、申请并绑定令牌Issuer发行方邮箱服务商邮箱域名权威方确认用户已登录用自己的私钥签发 EVT前提只有一个用户已登录邮箱服务商浏览器通过 Login Status API 感知这一状态。完整的请求应答时序图见 README.md。Email Verification Token 的三层结构 最终交给网站的令牌由三层组合而成请求令牌 → EVTSD-JWT→ KB 密钥绑定。第一层请求令牌 request_token——浏览器递给发行方的回执浏览器向发行方申请令牌时会先生成一对临时非对称密钥并构造一个签名的 JWT 作为请求发送出去。字段定义见 EVT Issuance 算法字段位置含义alg头部签名算法与临时密钥对匹配jwk头部临时公钥让发行方日后能定向结果给这枚浏览器aud载荷发行方标识域名iat载荷请求签发时间email载荷用户在表单中选定的邮箱地址签名尾部用临时私钥签名证明请求真实、防伪造签名算法默认使用 Ed25519除非发行方元数据另行指定。一次完整的签发请求/响应报文示例见 README.md。第二层EVT 本体——邮箱服务商签名的 SD-JWT校验通过后发行方返回包含issuance_token字段的 JSON其值是一个用发行方私钥签名的SD-JWT选择性披露 JWTRFC 9682末尾带~分隔符。关键声明如下声明作用email被验证的邮箱地址须与用户在表单中选中的值一致cnf含申请时携带的临时公钥把令牌锁定到发起请求的那枚浏览器exp过期时间验证时的必查项签名由发行方私钥签发验证方用发行方公钥确认它真的来自邮箱服务商第三层KB 密钥绑定——把令牌锁到这个网站、这张表单 浏览器拿到 EVT 后再用临时私钥做一层签名生成 Key-Bound JWTKB-JWT绑定两项信息绑定项来源防什么nonce网站服务端生成的密码学强随机值重放攻击令牌只对本次表单渲染有效audienceorigin当前网站域名跨站使用令牌无法被拿到别的网站三层合体后就是最终呈现给网站的完整EVTKB。页面侧只需一行 HTMLnonce 与 autocomplete 两个字段 ✍️规范引入的 HTML 扩展只有两处网站只需在表单里加一个隐藏输入框form action/signup methodpost input typeemail nameemail autocompleteemail input typehidden nameevt autocompleteemail-verification-token noncexyz123456789 button typesubmit注册/button /formautocompleteemail-verification-token新增的自动填充值浏览器据此识别这张表单需要 EVTnonce属性从script/style扩展到input必须由服务端生成、密码学强随机且每次页面渲染唯一——它是防重放的核心锚点。表单提交时浏览器会在onsubmit事件触发前自动把绑定好的 EVTKB 写进隐藏输入框服务端在表单数据里直接收到令牌。完整流转见浏览器处理模型。服务端如何验证 EVT四步校验清单 ✅收到表单后网站只需做四件事验证方处理模型与重放攻击防护验签名验证 EVT 的发行方签名与 KB 绑定签名audience 匹配绑定的 origin 必须与本站域名一致nonce 匹配必须是本次页面渲染时生成的随机值时效与内容exp未过期且令牌中的email与表单邮箱忽略大小写后一致。四项全过 验证成功无需再发验证邮件任何一项失败 优雅降级回传统验证码邮件流程。正因如此即使浏览器暂不支持或邮箱服务商暂不支持网站也能照常工作——这是 EVT 能渐进式铺开的关键设计。安全与隐私设计要点 ️DNS 发现浏览器通过邮箱域名的_email-verification.*TXT 记录如ississuer.example发现发行方建议走 DNS-over-HTTPS/DoT 并校验 DNSSEC发行方盲化浏览器在签发请求中不得泄露验证方来源——邮箱服务商只知道用户在线不知道用户在哪个网站用户明示授权验证前浏览器会弹出要与 xx.com 共享已验证令牌吗提示用户可允许或拒绝信息边界坦诚网站会额外学到用户在本设备登录了该邮箱服务商这一事实隐私章节与安全章节对此有明确讨论逐条问答见安全与隐私自查问卷。快速上手在 Chrome 中体验 EVT 安装 Chrome Canary145 及以上版本在chrome://flags/中搜索Email Verification Protocol启用#email-verification-protocol后重启打开chrome://settings/addresses确保地址簿中有来自支持 EVT 域名的邮箱登录该邮箱域名打开含 EVT 隐藏输入框的注册表单选中邮箱并提交——表单数据里就会携带已验证令牌。完整步骤见动手指南。仓库文件导航从这里继续深入 文件内容速览README.md提案背景、完整协议时序图、逐步说明与开放问题index.bsW3C Bikeshed 规范源HTML 扩展、浏览器处理模型、验证算法index.html渲染后的 W3C 规范稿Unofficial Proposal Draft带目录便于阅读HOWTO.mdChrome 实测步骤QUESTIONNAIRE.md安全与隐私自查问答LICENSE.md许可协议 阅读建议先读 index.bs 中的 HTML Extensions、Handling Autofill Selection 与 Form Submission Integration 三节它们就是 Email Verification Token 从表单选中到提交的完整路径。【免费下载链接】email-verificationverified autofill项目地址: https://gitcode.com/GitHub_Trending/em/email-verification创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考