身份验证是现代 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中文网其他相关文章!