身份驗證是現代 Web 應用程式的基石。在 Laravel 中,Passport 提供了完整的 OAuth2 伺服器實現,可以無縫地實現 API 驗證。本指南將引導您完成設定 Laravel Passport 的整個流程,從安裝到保護和測試 API。
Laravel Passport 透過與 Laravel 生態系統緊密整合來簡化 OAuth2 身分驗證的複雜性。有了護照,您可以:
開始之前,請確保您擁有:
如果您尚未設定項目,請使用以下內容建立項目:
composer create-project --prefer-dist laravel/laravel passport-auth cd passport-auth
執行以下命令將 Passport 新增至您的專案:
composer require laravel/passport
發布 Passport 遷移和設定檔:
php artisan vendor:publish --tag=passport-migrations php artisan migrate
執行安裝指令:
php artisan passport:install
這會產生加密金鑰並在您的資料庫中建立 OAuth 用戶端。記下輸出,尤其是客戶端 ID 和機密。
要明確建立個人存取用戶端,請執行:
php artisan passport:client --personal
將 HasApiTokens 特徵加入您的使用者模型:
use Laravel\Passport\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; // Other properties... }
在 config/auth.php 中將 Passport 配置為 API Guard 的驅動程式:
'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
在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)); }
在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
確保安全存取護照金鑰:
composer require laravel/passport
驗證權限:
php artisan vendor:publish --tag=passport-migrations php artisan migrate
預期輸出:
php artisan passport:install
使用 Postman 或任何 API 用戶端來測試端點:
恭喜!您已經使用 Laravel Passport 成功實作了 API 驗證。此設定為保護 API 提供了堅實的基礎。探索進階 Passport 功能,例如範圍、令牌撤銷和用戶端憑證,以進一步增強應用程式的安全性。
以上是使用 Passport 進行 Laravel 身份驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!