簡體   English   中英

如何僅允許Laravel API用於移動應用程序?

[英]How to allow laravel api only for mobile app?

我正在使用react native + Laravel API構建一個移動應用程序。 移動應用無需注冊/登錄即可公開訪問。

我想要的是,如何僅允許移動應用訪問API。 API不應允許來自網絡。

您可以使用可與Composer一起安裝的Laravel組件。 該軟件包提供了使用放在.env文件中的單個API密鑰的功能。

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

我認為您不想自己構建它。

composer require erjanmx/laravel-api-auth

發布程序包配置

php artisan vendor:publish --provider="Apiauth\Laravel\CAuthServiceProvider"

將此添加到.env

REMOTE_APP_TOKEN=<secret-token>

將“ apiauth:REMOTE_APP”中間件添加到您的路由

// /routes/api.php

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

只有提供有效的秘密令牌,才能訪問組中的URL

  • 在GET或POST請求中
  • 在請求標頭中作為授權載體
  • 在json原始主體中

秘密令牌是您生成的任何字符串。 在移動應用程序和Laravel端使用相同的秘密令牌。

API是與前端分離的組件。 因此,它沒有任何辦法知道哪種平台正在嘗試訪問它,除非前端當然向API提供了一些信息(這是不可信的)。

因此,我的意思是,您可以嘗試傳遞自定義參數或標頭字段,以指示來自移動設備的請求,而不將其包含在來自其他平台的請求中。 但是,這只是多種方法之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM