[我正在尝试使用 nextjs-14 最新版本使用动态 Api 路由来获取用户的验证令牌。 对于用户的验证过程,我的基本路由是 nextjs4 中使用应用程序路由器的“/api/auth/verify”。 现在,当用户注册自己时,我会在用户的邮件中发送注册链接,验证链接看起来像“mywebsite/api/auth/register/token”,
简而言之,对于不同的用户,令牌会有所不同,例如, “mywebsite/api/auth/register/token1”、“mywebsite/api/auth/register/token2”、“mywebsite/api/auth/register/token3” 所以
我怎样才能获得针对不同用户而变化的令牌?
我的路线是 api => 注册
login
verify
\[token\]
我想获取正在变化的令牌参数。我怎样才能进入route.js文件
我无法在此获取请求中记录某些内容。我在邮递员中点击获取请求时也收到此错误:
错误:页面“/api/auth/verify/[token]/route”缺少导出函数“generateStaticParams()”,这是“output:export”配置所必需的。
我想在这段代码中获取动态令牌,我如何在这里获取该令牌?
在你的
next.config.js
你有output: "export"
。通过将输出设置为 "export"
,您告诉 Next.js 编译器您需要一个静态资产来部署到我的静态托管,但我没有服务器来运行我的应用程序。
当您这样做时,您无法生成依赖于运行时数据的路由处理程序。如果构建时令牌未知,则无法生成
/api/auth/verify/{token}
。
如果您有编译器在构建时可以知道的标记子集,您可以提供导出的标记
generateStaticParams
// app/api/auth/verify/[token]/route.ts
export async function GET(req, {params}) {
return new Response(`${params.token}-${Math.random().toString()}`)
}
export function generateStaticParams() {
return [{token: "1"}, {token: "2"}, {token: "3"}, {token: "4"}]
}
此解决方案对您的情况没有帮助,通过运行时生成的令牌验证用户,您必须获得红色
output: "export"
并部署到 Node.js 服务器中自托管的无服务器平台才能实现此功能.