在Debian上使用Laravel Passport進行認證,你需要遵循以下步驟:
首先,確保你已經安裝了Composer。然后,在你的Laravel項目中運行以下命令來安裝Laravel Passport:
composer require laravel/passport
安裝完成后,運行以下命令來創建Passport所需的數據表:
php artisan migrate
在config/auth.php文件中,將api驅動更改為passport:
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
在app/Http/Kernel.php文件中,注冊Passport的中間件:
'api' => [
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
在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');
使用以下命令創建一個名為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);
}
現在你可以使用Postman或其他API測試工具來測試你的認證系統。首先,你需要獲取一個訪問令牌。發送一個POST請求到/login端點,包含用戶的電子郵件和密碼。如果憑據有效,你將收到一個訪問令牌。然后,在后續的請求中,將此令牌添加到Authorization頭中,以訪問受保護的資源。
這就是在Debian上使用Laravel Passport進行認證的過程。請確保你已經正確配置了所有步驟,并根據需要調整代碼。