使 NextJs API 路由只能从系统访问

问题描述 投票:0回答:1

我知道这个问题之前已经以其他形式得到了回答。

但我有一个稍微不同的问题。因此,在我的 NextJs 应用程序中,API 路由当然是可公开访问的。我不希望出现这种情况,所以我尝试实现 API 密钥检查,其中我随请求发送了密钥,但 API 密钥显示在标头中(显然)。

我的问题是著名的网站/API 如何处理这个问题?他们如何保护 API 的安全?比如他们有特殊的流程来做到这一点吗?

security next.js api-design
1个回答
0
投票

你有下一个兄弟!您所需要做的就是在服务器端调用 API。创建一个文件 actions.ts 并将 “use server” 放在文件顶部。 就这么简单!现在,您可以在传递或不传递密钥或任何其他凭据的情况下调用 api,但当您在服务器端获取数据时,它们都不会暴露给浏览器。 这是一个示例服务器操作函数,您需要安全地调用 api:

export const getPrayerTimes = async (
   prop1:string,
   prop2: string
) => {
  const requestBody: any = {
    prop1: prop1,
    prop2: prop2,
    key: process.env.API_KEY,
  }; 
  const responsedata = await axios.post(
    `${process.env.NEXT_PUBLIC_API_URL}/api/endpoint_url`,
    requestBody,
  );
  return responsedata.data;
};

如果有帮助,请不要忘记给我投票,如果您需要更多帮助,我将非常高兴收到您的来信..

© www.soinside.com 2019 - 2024. All rights reserved.