如何仅允许移动应用程序使用laravel api?

Sha*_*van 3 php api laravel react-native

我正在使用 react native + Laravel API 构建一个移动应用程序。移动应用程序无需注册/登录即可由公众访问。

我想要的是,如何仅允许移动应用程序访问 API。API 不应允许来自网络。

rya*_*txr 6

你可以使用这个 Laravel 组件,你可以用 Composer 安装它。这个包提供了使用你放在 .env 文件中的单个 API 密钥的能力。

https://github.com/erjanmx/laravel-api-auth

我假设你不想自己构建这个麻烦。

composer require erjanmx/laravel-api-auth
Run Code Online (Sandbox Code Playgroud)

发布包配置

php artisan vendor:publish --provider="Apiauth\Laravel\CAuthServiceProvider"
Run Code Online (Sandbox Code Playgroud)

将此添加到 .env

REMOTE_APP_TOKEN=<secret-token>
Run Code Online (Sandbox Code Playgroud)

将 'apiauth:REMOTE_APP' 中间件添加到您的路由中

// /routes/api.php

Route::group(['prefix' => 'v1', 'middleware' => ['apiauth:REMOTE_APP']], function () {
     // your routes
});
Run Code Online (Sandbox Code Playgroud)

只有提供了有效的秘密令牌才能访问您组中的网址

  • 在 GET 或 POST 请求中
  • 在请求头中作为授权承载
  • 在 json 原始正文中

Secret-token 是您生成的任何字符串。在移动应用程序和 Laravel 端使用相同的秘密令牌。