Laravel Passport 是 Laravel 框架中的一个包,用于实现 OAuth2 协议,以便你可以安全地为应用程序的 API 提供认证和授权。以下是一个快速入门指南,介绍如何在 Laravel 项目中设置和使用 Passport:
1. 安装 Laravel Passport
确保你的 Laravel 版本与 Passport 版本兼容。可以通过 Composer 安装 Passport:
composer require laravel/passport
2. 迁移数据库
Passport 需要一些额外的数据库表来存储 OAuth 相关的信息。运行以下命令来创建这些表:
php artisan migrate
3. 发布配置文件和密钥
发布 Passport 的配置文件和密钥:
php artisan vendor:publish --provider="Laravel\Passport\PassportServiceProvider"
4. 设置加密密钥
Passport 使用加密密钥来加密和解密敏感信息。生成一个新的应用密钥:
php artisan key:generate
5. 创建客户端
Passport 使用客户端来代表应用程序的不同部分。运行以下命令来创建一个个人访问客户端和个人密码授予客户端:
php artisan passport:install
或者单独创建客户端:
php artisan passport:client --personal
php artisan passport:client --password
6. 配置 .env 文件
在 .env 文件中,确保 APP_URL 和 APP_ENV 正确设置,因为 Passport 依赖这些值来生成正确的回调 URL。
7. 配置路由
在 routes/api.php 文件中,可以使用 auth:api 中间件来保护你的 API 路由:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
8. 用户模型设置
确保你的用户模型使用了 HasApiTokens Trait,这将使 Passport 能够为用户生成 API tokens。
9. 授权用户
在前端或 API 请求中,你需要使用生成的客户端 ID 和 Secret,以及用户的凭证来请求一个访问令牌。通常这可以通过发送一个 POST 请求到 /oauth/token 路由完成。
10. 使用令牌访问受保护的资源
一旦你获得了访问令牌,就可以在后续的 API 请求中通过 Authorization 头部发送它,格式为 Bearer {access_token}。
11. 测试
使用 Postman 或类似工具测试你的 API 路由,确保认证和授权工作正常。
12. 文档和进一步学习
查阅 Laravel Passport 的官方文档以了解更多高级功能和配置选项。
这个过程将让你能够快速上手并开始使用 Laravel Passport 来保护你的 API。