我知道这个问题之前已经以其他形式得到了回答。
但我有一个稍微不同的问题。因此,在我的 NextJs 应用程序中,API 路由当然是可公开访问的。我不希望出现这种情况,所以我尝试实现 API 密钥检查,其中我随请求发送了密钥,但 API 密钥显示在标头中(显然)。
我的问题是著名的网站/API 如何处理这个问题?他们如何保护 API 的安全?比如他们有特殊的流程来做到这一点吗?
你有下一个兄弟!您所需要做的就是在服务器端调用 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;
};
如果有帮助,请不要忘记给我投票,如果您需要更多帮助,我将非常高兴收到您的来信..