File tree 5 files changed +39
-27
lines changed
5 files changed +39
-27
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,9 @@ public function login(AuthRequest $request): JsonResponse
18
18
{
19
19
if (Auth::attempt ($ request ->all ())) {
20
20
$ user = Auth::user ();
21
+
22
+ $ user ->tokens ()->delete ();
23
+
21
24
$ success = $ user ->createToken ('MyApp ' )->plainTextToken ;
22
25
23
26
return $ this ->sendResponse (['token ' => $ success ], AuthConstants::LOGIN );
@@ -31,28 +34,20 @@ public function login(AuthRequest $request): JsonResponse
31
34
*/
32
35
public function logout (): JsonResponse
33
36
{
34
- if (Auth::check ()) {
35
- $ user = Auth::user ();
36
-
37
- $ user ->tokens ()->delete ();
37
+ $ user = Auth::user ();
38
38
39
- return $ this ->sendResponse ([], AuthConstants::LOGOUT );
40
- }
39
+ $ user ->tokens ()->delete ();
41
40
42
- return $ this ->sendError ( AuthConstants::UNAUTHORIZED );
41
+ return $ this ->sendResponse ([], AuthConstants::LOGOUT );
43
42
}
44
43
45
44
/**
46
45
* @return JsonResponse
47
46
*/
48
47
public function details (): JsonResponse
49
48
{
50
- if (Auth::check ()) {
51
- $ user = Auth::user ();
52
-
53
- return $ this ->sendResponse ($ user ->toArray (), '' );
54
- }
49
+ $ user = Auth::user ();
55
50
56
- return $ this ->sendError (AuthConstants:: UNAUTHORIZED );
51
+ return $ this ->sendResponse ( $ user -> toArray (), '' );
57
52
}
58
53
}
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ class Kernel extends HttpKernel
40
40
41
41
'api ' => [
42
42
\Laravel \Sanctum \Http \Middleware \EnsureFrontendRequestsAreStateful::class,
43
- \Illuminate \Routing \Middleware \ThrottleRequests::class. ':api ' ,
43
+ \Illuminate \Routing \Middleware \ThrottleRequests::class . ':api ' ,
44
44
\Illuminate \Routing \Middleware \SubstituteBindings::class,
45
45
],
46
46
];
@@ -63,5 +63,6 @@ class Kernel extends HttpKernel
63
63
'signed ' => \App \Http \Middleware \ValidateSignature::class,
64
64
'throttle ' => \Illuminate \Routing \Middleware \ThrottleRequests::class,
65
65
'verified ' => \Illuminate \Auth \Middleware \EnsureEmailIsVerified::class,
66
+ 'api.auth ' => \App \Http \Middleware \ApiAuthenticate::class,
66
67
];
67
68
}
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace App \Http \Middleware ;
4
+
5
+ use App \Http \Controllers \API \BaseController ;
6
+ use Closure ;
7
+ use Illuminate \Http \Request ;
8
+ use Symfony \Component \HttpFoundation \Response ;
9
+ use App \Constants \AuthConstants ;
10
+ use Illuminate \Support \Facades \Auth ;
11
+
12
+ class ApiAuthenticate extends BaseController
13
+ {
14
+ /**
15
+ * @param Request $request
16
+ * @param Closure $next
17
+ * @return Response
18
+ */
19
+ public function handle (Request $ request , Closure $ next ): Response
20
+ {
21
+ if ($ user = auth ('sanctum ' )->user ()) {
22
+ Auth::login ($ user );
23
+ return $ next ($ request );
24
+ }
25
+
26
+ return $ this ->sendError (AuthConstants::UNAUTHORIZED );
27
+ }
28
+ }
Original file line number Diff line number Diff line change 7
7
8
8
class Authenticate extends Middleware
9
9
{
10
- /**
11
- * @param [type] $request
12
- * @param array $guards
13
- * @return void
14
- */
15
- protected function unauthenticated ($ request , array $ guards )
16
- {
17
- }
18
-
19
10
/**
20
11
* Get the path the user should be redirected to when they are not authenticated.
21
12
*/
Original file line number Diff line number Diff line change 18
18
|
19
19
*/
20
20
21
- Route::middleware ('auth:sanctum ' )->get ('/user ' , function (Request $ request ) {
22
- return $ request ->user ();
23
- });
24
21
25
22
Route::post ('login ' , [LoginController::class, 'login ' ]);
26
23
Route::post ('register ' , [RegisterController::class, 'index ' ]);
27
24
28
- Route::group (['middleware ' => 'auth:sanctum ' ], function () {
25
+ Route::group (['middleware ' => 'api. auth ' ], function () {
29
26
Route::get ('user ' , [LoginController::class, 'details ' ]);
30
27
Route::get ('logout ' , [LoginController::class, 'logout ' ]);
31
28
You can’t perform that action at this time.
0 commit comments