首頁 > 後端開發 > php教程 > 使用 Passport 進行 Laravel 身份驗證

使用 Passport 進行 Laravel 身份驗證

Linda Hamilton
發布: 2025-01-04 05:18:43
原創
799 人瀏覽過

Laravel Authentication Using Passport

使用 Passport 掌握 Laravel 驗證:逐步指南

身份驗證是現代 Web 應用程式的基石。在 Laravel 中,Passport 提供了完整的 OAuth2 伺服器實現,可以無縫地實現 API 驗證。本指南將引導您完成設定 Laravel Passport 的整個流程,從安裝到保護和測試 API。


簡介

為什麼要使用 Laravel Passport?

Laravel Passport 透過與 Laravel 生態系統緊密整合來簡化 OAuth2 身分驗證的複雜性。有了護照,您可以:

  • 安全地驗證 API 使用者身分。
  • 為行動和網路用戶端產生個人存取權杖。
  • 輕鬆管理令牌過期和撤銷。

先決條件

開始之前,請確保您擁有:

  1. 對 Laravel 的基本了解。
  2. 安裝並設定資料庫的 Laravel 專案(建議 v10.x 或更高版本)。
  3. 已安裝 PHP 8.0 或更高版本。

如果您尚未設定項目,請使用以下內容建立項目:

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth
登入後複製
登入後複製

第 1 步:安裝 Laravel Passport

安裝包

執行以下命令將 Passport 新增至您的專案:

composer require laravel/passport
登入後複製
登入後複製

發布和遷移護照文件

發布 Passport 遷移和設定檔:

php artisan vendor:publish --tag=passport-migrations
php artisan migrate
登入後複製
登入後複製

第 2 步:配置 Laravel Passport

安裝加密金鑰和用戶端

執行安裝指令:

php artisan passport:install
登入後複製
登入後複製

這會產生加密金鑰並在您的資料庫中建立 OAuth 用戶端。記下輸出,尤其是客戶端 ID 和機密。

可選:建立個人存取用戶端

要明確建立個人存取用戶端,請執行:

php artisan passport:client --personal
登入後複製

第 3 步:更新模型

將 HasApiTokens 特徵加入您的使用者模型:

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // Other properties...
}
登入後複製

第 4 步:更新驗證設定

在 config/auth.php 中將 Passport 配置為 API Guard 的驅動程式:

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
登入後複製

第5步:註冊護照路線

在AppProvidersAppServiceProvider中,載入Passport的路由:

use Laravel\Passport\Passport;

public function boot(): void
{
    Passport::routes();
    Passport::tokensExpireIn(now()->addDays(15));
    Passport::refreshTokensExpireIn(now()->addDays(30));
    Passport::personalAccessTokensExpireIn(now()->addMonths(6));
}
登入後複製

第 6 步:建立驗證 API 端點

新增路線

在routes/api.php中定義API路由:

use App\Http\Controllers\AuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:api')->get('/user', [AuthController::class, 'user']);
登入後複製

建立身份驗證控制器

實作驗證方法:

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth
登入後複製
登入後複製

第 7 步:設定加密金鑰的權限

確保安全存取護照金鑰:

composer require laravel/passport
登入後複製
登入後複製

驗證權限:

php artisan vendor:publish --tag=passport-migrations
php artisan migrate
登入後複製
登入後複製

預期輸出:

php artisan passport:install
登入後複製
登入後複製

第 8 步:測試 API

使用 Postman 或任何 API 用戶端來測試端點:

  1. 註冊: 使用姓名、電子郵件和密碼向 /register 發送 POST 請求。
  2. 登入:使用電子郵件和密碼向 /login 發送 POST 請求。
  3. 取得使用者資料:使用授權標頭中的令牌向 /user 發送 GET 請求。

最佳實踐

  • 在生產中使用 HTTPS。
  • 定期輪換加密金鑰。
  • 徹底驗證輸入。
  • 限制令牌範圍以提高安全性。

結論

恭喜!您已經使用 Laravel Passport 成功實作了 API 驗證。此設定為保護 API 提供了堅實的基礎。探索進階 Passport 功能,例如範圍、令牌撤銷和用戶端憑證,以進一步增強應用程式的安全性。


以上是使用 Passport 進行 Laravel 身份驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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