Slide 9
Slide 9 text
γʔΫϨοττʔΫϯΛ௨ͯ͠
ϓϨϏϡʔڥͷURLʹ
ΞΫηεͨ͠ࡍʹɺ
Next.jsͷػೳͷҰͭͰ͋Δ
ϓϨϏϡʔϞʔυΛ༗ޮʹ͢Δ
pages/api/preview.js
// ϓϨϏϡʔAPI ϧʔτΛ࡞͢Δ
export default async (req, res) => {
// ϓϨϏϡʔڥʹΞΫηε͢ΔͨΊͷγʔΫϨοττʔΫϯ
// APIͱCMS͚͕͍ͩͬͯΔඞཁ͕͋Δ
const secret =
process.env.NEXT_CMS_DATOCMS_PREVIEW_SECRET;
// γʔΫϨοττʔΫϯ͕ؒҧ͍ͬͯΔͳΒ Invalid token Λฦ͢
if (secret && req.query.secret !== secret) {
return res.status(401).json({ message: "Invalid token" });
}
// ϒϥβʹϓϨϏϡʔϞʔυ༻ͷ Cookie Λઃఆ͢Δ
// `res.setPreviewData` Λ͏͜ͱͰϓϨϏϡʔϞʔυʹઃఆͰ͖Δ
res.setPreviewData({});
// ϓϨϏϡʔϞʔυ͕༗ޮͷঢ়ଶͰϧʔτʹભҠ͢Δ
res.writeHead(307, { Location: "/" });
res.end();
};
DatoCMS + Next.js ͰϓϨϏϡʔػೳ͖ϒϩάΛ࡞Δ
2. ࡞͞Εͨ Repository Λ clone ͠ɺNext.js ଆͰϓϨϏϡʔػೳΛ࣮