Skip to content

Commit 2252a09

Browse files
committed
Implement logout functionality in LogoutController with cookie expiration for access and refresh tokens
This commit updates the logout method in the LogoutController to revoke the user's access token and set cookies for both access and refresh tokens to expire immediately. It includes environment-based cookie settings for enhanced security, ensuring a proper logout process and improved user experience.
1 parent 022b9ee commit 2252a09

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

app/Http/Controllers/Auth/LogoutController.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
namespace App\Http\Controllers\Auth;
44

5-
use App\Http\Controllers\Controller;
5+
use Carbon\Carbon;
66
use Illuminate\Http\Request;
7+
use App\Http\Controllers\Controller;
78
use Illuminate\Support\Facades\Auth;
89

910

@@ -12,6 +13,21 @@ class LogoutController extends Controller
1213
public function logout(){
1314
$user = Auth::guard('api')->user();
1415
$user->token()->revoke();
15-
return response()->json(['message'=>"Logout successfully"]);
16+
$domain = (config('app.env') === 'production') ? '.akevas.com' : null;
17+
$secure = config('app.env') === 'production';
18+
19+
// 3. Définir la date d'expiration dans le passé (expire immédiatement)
20+
$pastExpiration = Carbon::now()->subMinutes(5)->timestamp;
21+
22+
// 4. Construire la réponse (statut 204 No Content est courant pour le logout)
23+
return response()->noContent(204)
24+
// 5. Faire expirer l'accessToken
25+
->cookie('accessToken', null,
26+
$pastExpiration,
27+
'/', $domain, $secure, true, false, 'none') // Utiliser les mêmes paramètres que la pose
28+
// 6. Faire expirer le refreshToken
29+
->cookie('refreshToken', null,
30+
$pastExpiration,
31+
'/', $domain, $secure, true, false, 'none');
1632
}
1733
}

0 commit comments

Comments
 (0)