如何隐藏通过 url 直接访问的 nextjs api 路由?

Posted

技术标签:

【中文标题】如何隐藏通过 url 直接访问的 nextjs api 路由?【英文标题】:how to hide nextjs api routes from being directly accessible through url? 【发布时间】:2021-07-07 05:18:36 【问题描述】:

在通过 URL 访问时,有什么方法可以隐藏 next.js API 路由响应数据?我想隐藏路由,因为有些数据我不想被用户直接访问。

【问题讨论】:

我不认为这个问题与 next.js 密切相关,顺便说一下,你可以用 POST 代替 GET 进行调用 您不能“隐藏” api 端点,因为您的客户端应用程序正在访问 => 它会向用户显示。您需要使用多种方式之一来保护 api 端点。其中之一是发送服务器之前返回给您的特殊 accessToken。 我只使用 POST 请求进行 API 调用,但 API URL 中存在数据。 @felixmosh 是否有相同的参考来保护 API 端点? 这是一个简单的认证问题,github.com/nextauthjs/next-auth-example 【参考方案1】:

无法通过 nextjs 中的 url 向用户隐藏 API 路由。实际上,当您托管网站时,任何人都可以公开使用 nextjs API 路由,而无需从 out 文件夹导出和托管。我结束了使用 node express 制作服务器端路由,然后在 nextjs 中连接到前端。

【讨论】:

以上是关于如何隐藏通过 url 直接访问的 nextjs api 路由?的主要内容,如果未能解决你的问题,请参考以下文章

Nextjs - 在服务器端访问 url 参数

如何隐藏/加密/混淆我的 Android 应用程序中使用的直接 URL? [复制]

Blazor 路由:如何防止通过 URL 直接访问组件

如何在 reactjs/nextjs 中拆分 URL [重复]

带有 nextjs 路由的更漂亮的 url

如何在 NextJS+React 中使用 api 生成的内容创建用户可自定义的动态 url?