如何保护 Next.js 中的 API 路由?

时间:2021-02-26 11:35:42

标签: javascript node.js next.js

我正在使用 Next.js API 路由 - https://nextjs.org/docs/api-routes/introduction,但我不知道如何保护它们不被公开。

现在这些路由在我的生产服务器中是公开的。

例如:当我在浏览器中访问 mysite.com/api/cats 时,它返回 -

{ success: true, data: [...] }

请帮忙,我如何向公众隐藏这些 API 路由?

2 个答案:

答案 0 :(得分:2)

如果您阻止浏览器请求 URL,那么用户在地址栏中键入 URL 时将看不到数据并且当它生成 Ajax 时,您的 JavaScript 将看不到它请求到相同的 URL。

您无法对浏览器用户隐藏数据,同时仍允许在同一浏览器中运行的应用程序访问它。

答案 1 :(得分:0)

使用 getSession()# 您可以使用 getSession() 方法保护 API 路由。

使用 getToken()# 如果您使用的是 JSON Web 令牌,则可以使用 getToken() 助手来访问 JWT 的内容,而无需自己处理 JWT 解密/验证。此方法只能在服务器端使用。

请参阅此处:https://next-auth.js.org/tutorials/securing-pages-and-api-routes#:~:text=You%20can%20protect%20API%20routes%20using%20the%20getSession()%20method

相关问题