Next.js Discord

Discord Forum

I'm using ISR, my route api/revalidate is consistently triggered even though i am using a secret

Unanswered
Giant panda posted this in #help-forum
Open in Discord
Giant pandaOP
file in question:

import { SIGNATURE_HEADER_NAME, isValidSignature } from '@sanity/webhook'
import { NextApiRequest, NextApiResponse } from 'next'
import { generateSiteMap } from 'utils/helper.server'

export const config = {
  api: {
    bodyParser: false,
  },
}

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse,
) {
  if (req.method !== 'POST') {
    return res.status(405).send('Method Not Allowed')
  }

  const SANITY_WEBHOOK_SECRET = process.env.NEXT_PUBLIC_SANITY_HOOK_SECRET

  const signature = req.headers[SIGNATURE_HEADER_NAME]
  const isValid = isValidSignature(
    JSON.stringify(req.body),
    signature as string,
    SANITY_WEBHOOK_SECRET,
  )

  // Validate signature
  if (!isValid) {
    res.status(401).json({ success: false, message: 'Invalid signature' })
    return
  }

  try {
    const dynamicLocations = await generateSiteMap()
    const allLocations = [
      ...dynamicLocations.map((q) => q.loc),
      `/`,
      `/posts`,
      `/projects`,
      `/contact-us`,
      `/employees`,
      `/lead-generation`,
    ]

    for (let i = 0; i < allLocations.length; i++) {
      await res.revalidate(allLocations[i])
    }

    return res.status(204).send('No Content')
  } catch (error) {
    console.error(error)
    return res.status(500).send('Internal Server Error')
  }
}


why is the route constantly being triggered in production? its consting me a significant amount

0 Replies