如何在nextjs中更新客户端页面上的数据库?

qlfbtfca  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(152)

我想添加一个数据库条目的基础上,用户点击一个特定的按钮。我能看到的唯一方法是创建一个Next API并调用fetch来更新数据库。
问题是任何人都可以直接进入API端点(无需单击特定按钮)并将条目添加到数据库。
我要怎么阻止这一切?
async function complete(){ const res = await fetch(/api/add/user?id=${id});const data = await res.json();}

hmtdttj4

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',
  })
}

相关问题