首页 > 后端开发 > php教程 > 使用 Passport 进行 Laravel 身份验证

使用 Passport 进行 Laravel 身份验证

Linda Hamilton
发布: 2025-01-04 05:18:43
原创
798 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板