Laravel API 只能通过 vpn 访问

Laravel API only accessible via vpn

我们正在构建 API,其他应用程序将使用我们应用程序的 read/write 数据。

例如: www.example.com/getPayments/useid

要求:上面的API应该只能通过VPN访问所以别人不能从网。

那么我怎样才能使我们应用程序中的某些路由只能通过 Laravel 中的 VPN 访问。

只要 VPN 的 IP 地址包含在请求的 HTTP headers 中,编写一些中间件以根据访问者的 IP 地址限制对某些路由的访问应该适合您或通过另一个 $_SERVER 变量可供 PHP 使用。您需要检查发送的 HTTP 请求的 headers 以找到包含您的 VPN IP 地址的请求,然后在您的中间件中使用它。

您可以编写一个轻量级中间件组件来执行此操作,或者使用现有程序包将您要保护的路由的 VPN IP 地址仅列入白名单。

Firewall 是现有的 Laravel 服务提供商,可以帮助您解决此问题。