/
githubmirror
/
next.js
Обзор
Документация
Войти
/
githubmirror
/
next.js
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
canary
examples/cms-ghost/pages/api/preview.js
28 строк
952 B
Steven
chore(examples): use default prettier for examples/templates (#60530)
12 янв 2024, 02:01
Не верифицирован
12 янв 2024, 02:01
4466ba4
Код
Авторство
О чём код?
import { getPreviewPostBySlug } from "@/lib/api"; export default async function preview(req, res) { // Check the secret and next parameters // This secret should only be known to this API route and the CMS if ( req.query.secret !== process.env.GHOST_PREVIEW_SECRET || !req.query.slug ) { return res.status(401).json({ message: "Invalid token" }); } // Fetch the headless CMS to check if the provided `slug` exists const post = await getPreviewPostBySlug(req.query.slug); // If the slug doesn't exist prevent preview mode from being enabled if (!post) { return res.status(401).json({ message: "Invalid slug" }); } // Enable Draft Mode by setting the cookie res.setDraftMode({ enable: true }); // Redirect to the path from the fetched post // We don't redirect to req.query.slug as that might lead to open redirect vulnerabilities res.writeHead(307, { Location: `/posts/${post.slug}` }); res.end(); }