我想添加一个数据库条目的基础上,用户点击一个特定的按钮。我能看到的唯一方法是创建一个Next API并调用fetch来更新数据库。问题是任何人都可以直接进入API端点(无需单击特定按钮)并将条目添加到数据库。我要怎么阻止这一切?async function complete(){ const res = await fetch(/api/add/user?id=${id});const data = await res.json();}
/api/add/user?id=${id}
hmtdttj41#
您需要保护路由,例如,通过确认允许用户在服务器上执行请求的操作。例如,如果您正在使用NextAuth,则这来自https://next-auth.js.org/configuration/nextjs
import { authOptions } from 'pages/api/auth/[...nextauth]' import { getServerSession } from "next-auth/next" export async function handler(req, res) { const session = await getServerSession(req, res, authOptions) if (!session) { res.status(401).json({ message: "You must be logged in." }); return; } return res.json({ message: 'Success', }) }
1条答案
按热度按时间hmtdttj41#
您需要保护路由,例如,通过确认允许用户在服务器上执行请求的操作。
例如,如果您正在使用NextAuth,则这来自https://next-auth.js.org/configuration/nextjs