File tree Expand file tree Collapse file tree 3 files changed +43
-1
lines changed
Expand file tree Collapse file tree 3 files changed +43
-1
lines changed Original file line number Diff line number Diff line change 66use Atomjoy \Apilogin \Http \Controllers \Admin \LoginController as AdminLoginController ;
77use Atomjoy \Apilogin \Http \Controllers \Admin \PasswordResetController as AdminPasswordResetController ;
88use Atomjoy \Apilogin \Http \Controllers \Admin \LoggedController as AdminLoggedController ;
9+ use Atomjoy \Apilogin \Http \Controllers \Admin \LogoutController as AdminLogoutController ;
910
1011// Admin panel
1112Route::prefix ('web/api/admin ' )->name ('web.api.admin ' )->middleware ([
1415 // Public routes
1516 Route::post ('/login ' , [AdminLoginController::class, 'index ' ])->name ('login ' );
1617 Route::post ('/password ' , [AdminPasswordResetController::class, 'index ' ])->name ('password ' );
18+ Route::get ('/logout ' , [AdminLogoutController::class, 'index ' ])->name ('logout ' );
1719 Route::get ('/logged ' , [AdminLoggedController::class, 'index ' ])->name ('logged ' );
1820 Route::post ('/f2a ' , [AdminF2aController::class, 'index ' ])->name ('f2a ' );
1921
Original file line number Diff line number Diff line change 1010use Illuminate \Foundation \Events \Dispatchable ;
1111use Illuminate \Queue \SerializesModels ;
1212use App \Models \User ;
13+ use Atomjoy \Apilogin \Models \Admin ;
1314
1415class LogoutUser
1516{
@@ -20,7 +21,7 @@ class LogoutUser
2021 *
2122 * @return void
2223 */
23- public function __construct (public User $ user )
24+ public function __construct (public User | Admin $ user )
2425 {
2526 }
2627
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Atomjoy \Apilogin \Http \Controllers ;
4+
5+ use Exception ;
6+ use App \Http \Controllers \Controller ;
7+ use Atomjoy \Apilogin \Events \LogoutUser ;
8+ use Atomjoy \Apilogin \Events \LogoutUserError ;
9+ use Atomjoy \Apilogin \Exceptions \JsonException ;
10+ use Illuminate \Http \Request ;
11+ use Illuminate \Support \Facades \Auth ;
12+
13+ class LogoutController extends Controller
14+ {
15+ function index (Request $ request )
16+ {
17+ try {
18+ Auth::shouldUse ('admin ' );
19+
20+ if (Auth::check ()) {
21+ LogoutUser::dispatch (Auth::user ());
22+ Auth::logout ();
23+ }
24+
25+ $ request ->session ()->flush ();
26+ $ request ->session ()->invalidate ();
27+ $ request ->session ()->regenerateToken ();
28+ session (['locale ' => config ('app.locale ' )]);
29+
30+ return response ()->json ([
31+ 'message ' => __ ('apilogin.logout.success ' ),
32+ ], 200 );
33+ } catch (Exception $ e ) {
34+ report ($ e );
35+ LogoutUserError::dispatch ();
36+ throw new JsonException (__ ('apilogin.logout.error ' ), 422 );
37+ }
38+ }
39+ }
You can’t perform that action at this time.
0 commit comments