透過 Laravel Sanctum 實現 PHP 安全驗證

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

透過 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; }
登入後複製

該程式碼在UserModel 中使用了HasApiTokenstrait 來為使用者產生 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
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!