答案:本文介绍Laravel中三种API Token认证实现方式。首先使用Laravel Sanctum生成token并保护路由;其次通过Passport实现OAuth2认证,支持复杂授权流程;最后可自定义token机制,手动验证请求中的Bearer Token。

如果您在开发 Laravel 应用时需要为 API 提供安全的身份验证机制,可以使用 Token 认证来识别用户身份并控制访问权限。以下是实现 Laravel API Token 认证的具体步骤。
本文运行环境:MacBook Pro,macOS Sonoma
Laravel Sanctum 是一个轻量级的认证系统,适用于 SPA、移动端以及简单 API 的 token 认证。它通过为用户生成随机 token 来进行身份验证,并将 token 存储在数据库中。
1、在 Laravel 项目中安装 Laravel Sanctum:
composer require laravel/sanctum
2、发布 Sanctum 的迁移文件并执行数据库迁移:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
3、在 User 模型中引入 HasApiTokens trait,以启用 token 功能:
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable { use HasApiTokens; }
4、在 api 路由中使用 sanctum 进行中间件保护:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
5、通过调用 createToken 方法为用户生成 token:
$user = User::find(1); $token = $user->createToken('api-token')->plainTextToken;
Laravel Passport 提供了完整的 OAuth2 服务器支持,适合复杂的 API 认证场景,允许客户端应用通过授权流程获取访问令牌。
1、安装 Laravel Passport 扩展包:
composer require laravel/passport
2、运行数据库迁移以创建必要的数据表:
php artisan migrate
3、生成加密密钥和客户端凭证:
php artisan passport:install
4、在 User 模型中引入 HasApiTokens trait:
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable { use HasApiTokens; }
5、在 AuthServiceProvider 中启用 Passport:
use Laravel\Passport\Passport; Passport::routes();
6、配置 api guard 使用 passport 驱动:
'api' => [ 'driver' => 'passport', 'provider' => 'users' ]
7、通过密码授权方式获取 token:
POST /oauth/token,携带 grant_type、client_id、client_secret、username、password 等参数
对于特定业务需求,可以不依赖第三方包,而是通过数据库字段存储 token 并手动验证请求中的 token 值。
1、在 users 表中添加 api_token 字段:
Schema::table('users', function (Blueprint $table) { $table->string('api_token', 80)->unique()->nullable(); });
2、为用户生成唯一 token 并保存:
$user->update(['api_token' => bin2hex(random_bytes(40))]);
3、创建中间件检查请求头中的 Authorization Bearer Token:
php artisan make:middleware CheckApiToken
4、在中间件 handle 方法中查询用户是否存在对应 token:
$token = $request->bearerToken(); $user = User::where('api_token', $token)->first(); if (!$user) { abort(401); }
5、将中间件注册到 kernel 并应用于指定路由组。
以上就是laravel怎么实现API的token认证_laravel API Token认证实现方法的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号