You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Fastify中使用AJV验证URL路径参数verificationToken?

修复Fastify路径参数verificationToken验证失败问题

你的问题出在验证规则的字段选错了:你在schema里用querystring来定义验证,但实际verificationToken是URL路径参数(路由里的:verificationToken),不是URL末尾的查询参数(比如?token=xxx),所以Fastify找不到这个参数,才会一直提示“Verification token is required.”。

直接把schema里的querystring替换成params即可,路径参数对应的验证字段是params,修改后的代码如下:

export const UserActivationSchema = {
    schema : {
       params: { // 替换原有的querystring为params
          type                : 'object',
          required            : [ 'verificationToken' ],
          additionalProperties: false,
          properties          : {
             verificationToken: {
                type: 'string'
             },
          },
          errorMessage        : {
             properties: {
                verificationToken: 'Verification token is required.'
             },
             required: 'Verification token is required.'
          }
       },
    },
    handler: activateEmail,
}

路由定义保持不变:

fastify.get( '/activate/:verificationToken', UserActivationSchema );

修改后,Fastify会正确识别URL路径中的verificationToken参数,验证它是否为字符串且已提供,符合你的需求。

内容的提问来源于stack exchange,提问作者Marvix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 06:42:12