Laravel API 认证:JWT 认证
// 使用JWT进行API认证的Laravel中间件示例
// 首先,确保已经通过Composer安装了jwt-auth库
// composer require tymon/jwt-auth
// 在app/Http/Kernel.php中注册中间件
protected $routeMiddleware = [
// ...
'jwt.auth' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
// ...
];
// 然后,在routes/api.php中使用中间件保护特定路由
Route::group(['middleware' => ['jwt.auth']], function () {
// 受保护的路由,只有通过认证的用户可以访问
Route::get('/protected', function () {
return response()->json(['message' => 'This route is protected']);
});
});
// 确保JWTAuth服务已在AppServiceProvider中注册
// 在app/Providers/AppServiceProvider.php中添加以下代码
public function boot()
{
// ...
$this->app->singleton('JWTAuth', function () {
return JWTAuth::createJWTDriver();
});
// ...
}
// 确保已经在config/auth.php中配置了jwt的guards
'guards' => [
// ...
'jwt' => [
'driver' => 'jwt',
'provider' => 'users',
],
// ...
],
// 确保已经在config/jwt.php中配置了JWT的密钥和其他相关选项
以上代码展示了如何在Laravel应用程序中使用JWT进行API认证。首先,在AppServiceProvider
中注册了JWTAuth服务,并在Http/Kernel.php
中注册了中间件。然后,在路由文件routes/api.php
中,使用了jwt.auth
中间件保护了一个路由。最后,确保了必要的配置已经在config/auth.php
和config/jwt.php
中设置好。
评论已关闭