小编Chr*_*ris的帖子

如何在前端使用密钥对 ISR (Next.js) 进行按需重新验证而不暴露它?

根据文档,您应该使用 SECRET_TOKEN 来防止未经授权访问您的重新验证 API 路由,即

https://<your-site.com>/api/revalidate?secret=<token>

但是,您应该如何从前端调用该路由并保持令牌的秘密呢?

例如,如果您有一个简单的 POST,然后想要触发重新验证,则必须通过 NEXT_PUBLIC 公开您的秘密令牌才能使用它:

function handleSubmit(payload) {
  axios.post(POST_URL, payload)
  .then(() => {
    axios.get(`/api/revalidate?secret=${process.env.NEXT_PUBLIC_SECRET_TOKEN}`)
  })
  .then(() => {
    // redirect to on-demand revalidated page
  })
}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?如何在不暴露 SECRET_TOKEN 的情况下通过前端调用 API 路由?

next.js

5
推荐指数
1
解决办法
976
查看次数

标签 统计

next.js ×1