Laravel API Passport认证配置指南

需积分: 21 1 下载量 4 浏览量 更新于2024-07-01 收藏 500KB DOCX 举报
本文将详细介绍如何在 Laravel 应用中安装和配置 Laravel API Passport 认证系统,以及如何获取和刷新 access token。 Laravel API Passport 是 Laravel 框架提供的一种强大的 OAuth2 服务器解决方案,它使得为 API 创建、管理和验证访问令牌变得简单。以下是一步步的安装和配置步骤: 1. 安装 Passport 使用 Composer 安装 Laravel Passport。确保你的 Laravel 版本与 Passport 版本兼容。在终端中输入以下命令来安装特定版本(7.5.1)的 Passport: ``` composer require laravel/passport 7.5.1 ``` 2. 运行数据库迁移 安装完成后,运行数据库迁移以创建 Passport 需要的表,如 `oauth_clients` 和 `oauth_access_tokens`。在命令行中执行: ``` php artisan migrate ``` 3. 生成秘钥 接下来,生成用于创建安全 access token 的私钥和公钥。这个命令也会创建个人访问令牌的密钥: ``` php artisan passport:install ``` 记录生成的 `client_id` 和 `client_secret`,因为它们在配置 `.env` 文件时会用到。 4. 配置 .env 文件 在 `.env` 文件中,设置 `PASSPORT_CLIENT_ID` 和 `PASSPORT_CLIENT_SECRET` 变量,值分别为之前生成的 `client_id` 和 `client_secret`。 5. 创建 passport.php 配置文件 在 `config` 目录下创建一个名为 `passport.php` 的文件,用于配置获取和刷新 token 的参数。文件内容应包含如下代码: ```php return [ // 获取token 'proxy' => [ 'grant_type' => 'password', 'client_id' => env('PASSPORT_CLIENT_ID', ''), 'client_secret' => env('PASSPORT_CLIENT_SECRET', ''), 'scope' => '*', ], // 刷新token 'refresh' => [ 'grant_type' => 'refresh_token', 'client_id' => env('PASSPORT_CLIENT_ID', ''), 'client_secret' => env('PASSPORT_CLIENT_SECRET', ''), 'scope' => '*', ], ]; ``` 6. 更新 auth 文件 修改 `config/auth.php` 文件,确保 `guards` 和 `providers` 配置正确。特别是,你需要指定 `api` guard 使用 `passport` driver,并且设置对应的用户模型。如果你有自定义的用户模型(如 `\App\Models\v1\User`),记得更新 `users` provider 的 `model` 属性。 7. 创建用户模型 如果还没有用户模型,可以创建一个。例如,创建一个名为 `\App\Models\v1\User` 的文件,继承自 `Illuminate\Foundation\Auth\User as Authenticatable` 类,并使用 `Notifiable` trait。这允许用户接收通知并进行身份验证。 完成这些步骤后,你就可以在 Laravel 应用中使用 Passport 来管理 API 访问权限了。要获取 access token,你可以通过发送 POST 请求到 `/oauth/token` 端点,包含用户名、密码、client_id 和 client_secret。使用生成的 access token,你可以访问受保护的 API 资源。当 access token 过期时,可以通过 refresh token 发送请求到 `/oauth/refresh` 来获取新的 access token。 Laravel API Passport 提供了一套完整的 OAuth2 解决方案,使得在 Laravel 应用中构建安全的 API 成为了可能。它简化了 token 的管理,包括创建、刷新和撤销,以及对用户权限的控制,是开发 RESTful API 的理想选择。