debian

如何在Debian上使用Laravel Passport认证

小樊
36
2025-03-29 06:21:01
栏目: 智能运维

在Debian上使用Laravel Passport进行认证,你需要遵循以下步骤:

  1. 安装Laravel Passport:

首先,确保你已经安装了Composer。然后,在你的Laravel项目中运行以下命令来安装Laravel Passport:

composer require laravel/passport
  1. 迁移数据库:

安装完成后,运行以下命令来创建Passport所需的数据表:

php artisan migrate
  1. 注册Passport:

config/auth.php文件中,将api驱动更改为passport

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
  1. 安装Passport中间件:

app/Http/Kernel.php文件中,注册Passport的中间件:

'api' => [
    \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
  1. 创建路由:

routes/api.php文件中,添加以下路由以启用Passport的授权端点:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/login', 'Auth\LoginController@login');
Route::post('/logout', 'Auth\LoginController@logout')->middleware('auth:api');
Route::post('/password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
Route::post('/password/reset', 'Auth\ResetPasswordController@reset');
  1. 创建控制器:

使用以下命令创建一个名为LoginController的控制器:

php artisan make:controller Auth/LoginController

LoginController中,添加以下方法:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('MyAppToken')->accessToken;
        return response()->json(['token' => $token], 200);
    } else {
        return response()->json(['error' => 'Invalid credentials'], 401);
    }
}

public function logout(Request $request)
{
    $request->user()->currentAccessToken()->delete();
    return response()->json(['message' => 'Logged out successfully'], 200);
}
  1. 测试认证:

现在你可以使用Postman或其他API测试工具来测试你的认证系统。首先,你需要获取一个访问令牌。发送一个POST请求到/login端点,包含用户的电子邮件和密码。如果凭据有效,你将收到一个访问令牌。然后,在后续的请求中,将此令牌添加到Authorization头中,以访问受保护的资源。

这就是在Debian上使用Laravel Passport进行认证的过程。请确保你已经正确配置了所有步骤,并根据需要调整代码。

0
看了该问题的人还看了