透過 Laravel Sanctum 實現 PHP 安全驗證

王林
發布: 2023-07-26 18:00:01
原創
950 人瀏覽過

透過 Laravel Sanctum 實作 PHP 安全驗證

概述:
在現代 Web 開發中,安全驗證是一個至關重要的方面。 Laravel Sanctum 是 Laravel 提供的一種簡單且靈活的身份驗證守衛,可用於前後端分離的應用。本文將介紹如何使用 Laravel Sanctum 實作 PHP 安全驗證,並提供相關的程式碼範例。

步驟一:安裝 Laravel Sanctum

首先,在 Laravel 專案中安裝 Sanctum 擴充包。可以使用 Composer 進行安裝,執行下列指令:

composer require laravel/sanctum
登入後複製

步驟二:設定 Sanctum

安裝完成後,需要設定 Sanctum 。打開專案根目錄下的config/app.php 文件,找到providers 數組,並添加以下程式碼:

'providers' => [

    // ...

    LaravelSanctumSanctumServiceProvider::class,

],
登入後複製

然後,執行以下命令來發布Sanctum 的設定檔和資料庫遷移檔:

php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"
登入後複製

接著,執行下列指令來執行資料庫遷移:

php artisan migrate
登入後複製

步驟三:設定驗證驅動程式

在設定過程中,需要選擇使用Sanctum 作為預設的身份驗證驅動程式。開啟config/auth.php 文件,找到guards 數組,並將預設的guard 設為sanctum

'defaults' => [
    'guard' => 'sanctum',
    // ...
],
登入後複製

步驟四:啟用Sanctum 中間件

Sanctum 需要使用自己的中間件來處理身分驗證。為了啟用 Sanctum,需要將 Authenticate 中介軟體替換為 Sanctum 提供的中間件。開啟app/Http/Kernel.php 文件,將以下程式碼加入$routeMiddleware 陣列中:

protected $routeMiddleware = [
    // ...
    'auth' => LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
];
登入後複製

步驟五:產生Sanctum API Token

#Sanctum 提供了API Token 來進行身份驗證。 API Token 可以透過以下程式碼來產生:

use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}
登入後複製

該程式碼在 User Model 中使用了 HasApiTokens trait 來為使用者產生 API Token。

步驟六:保護路由

使用Sanctum 進行安全驗證後,可以透過以下程式碼來保護需要驗證的路由:

Route::middleware('auth:sanctum')->group(function () {
    // 这里是需要保护的路由
});
登入後複製

以上程式碼將會套用Sanctum 中間件來驗證使用者的API Token。

步驟七:進行身份驗證

當使用者透過前端應用程式提交請求時,可以透過以下程式碼來進行身份驗證:

use IlluminateHttpRequest;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');
    
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('api')->plainTextToken;

        return response()->json([
            'user' => $user,
            'token' => $token,
        ]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});
登入後複製

以上程式碼將會透過用戶提供的郵箱和密碼來進行身份驗證,並傳回一個帶有使用者資訊和API Token 的JSON 回應。

總結:
透過 Laravel Sanctum,我們可以輕鬆實現 PHP 應用的安全驗證。本文介紹如何安裝和設定 Laravel Sanctum,並提供了相關的程式碼範例。希望本文對於初學者能夠有所幫助,並能啟發更多人學習和使用 Laravel Sanctum。

參考連結:

  • [Laravel Sanctum GitHub 官方文件](https://github.com/laravel/sanctum)

以上是透過 Laravel Sanctum 實現 PHP 安全驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板