簡體   English   中英

Laravel REST 保護給定方法並使每個角色可訪問

[英]Laravel REST protect given methods and make accessable per role

我有一個 laravel 項目,它提供了 rest api 一些公共數據,另一方面,登錄用戶可以管理一些與會員資格相關的數據。

現在在這個儀表板中,我有幾個反應組件。 有些主題只是簡單地獲取異步數據,有些主題正在與數據庫交互,意思是他們修補、創建、刪除用戶角色 function 中的數據。 這個端點應該受到保護。

我讀過關於聖所的文章,但我認為這種情況會是開銷。 還有其他方法可以保護這條 api 路線嗎?

您可以使用 laravel Auth 輕松實現。 如果沒有,您需要將 api_token 字段添加到您的用戶表中。 在用戶注冊時生成 access_token。 為了保護路由作為中間件,請使用 auth:api。

在 app\Http\Kernel.php 中,您需要將 api 密鑰添加到 $middlewareGroups

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

之后將中間件保護添加到路由

Route::group(['middleware' => 'auth:api'], function () {}

當您提出請求時,您需要將 api_token 參數添加到您的 url 例如:http://localhost/update?api_token=1234。 這是我所知道的最簡單的方法。 您還可以將 api_token 作為請求正文的一部分發送以確保安全。

暫無
暫無

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

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