22
33namespace App \Http \Controllers \Api \V1 ;
44
5- use App \Models \Access \User \User ;
65use Illuminate \Http \Request ;
7- use JWTAuth ;
8- use Tymon \JWTAuth \Exceptions \JWTException ;
6+ use Illuminate \Support \Facades \Auth ;
97use Validator ;
108
119class AuthController extends APIController
@@ -20,8 +18,8 @@ class AuthController extends APIController
2018 public function login (Request $ request )
2119 {
2220 $ validation = Validator::make ($ request ->all (), [
23- 'email ' => 'required|email ' ,
24- 'password ' => 'required|min:4 ' ,
21+ 'email ' => 'required|email ' ,
22+ 'password ' => 'required|min:4 ' ,
2523 ]);
2624
2725 if ($ validation ->fails ()) {
@@ -31,10 +29,19 @@ public function login(Request $request)
3129 $ credentials = $ request ->only (['email ' , 'password ' ]);
3230
3331 try {
34- if (!$ token = JWTAuth ::attempt ($ credentials )) {
32+ if (!Auth ::attempt ($ credentials )) {
3533 return $ this ->throwValidation (trans ('api.messages.login.failed ' ));
3634 }
37- } catch (JWTException $ e ) {
35+
36+ $ user = $ request ->user ();
37+
38+ $ passportToken = $ user ->createToken ('API Access Token ' );
39+
40+ // Save generated token
41+ $ passportToken ->token ->save ();
42+
43+ $ token = $ passportToken ->accessToken ;
44+ } catch (\Exception $ e ) {
3845 return $ this ->respondInternalError ($ e ->getMessage ());
3946 }
4047
@@ -45,49 +52,30 @@ public function login(Request $request)
4552 }
4653
4754 /**
48- * Log the user out (Invalidate the token) .
55+ * Get the authenticated User .
4956 *
5057 * @return \Illuminate\Http\JsonResponse
5158 */
52- public function logout ()
59+ public function me ()
5360 {
54- try {
55- $ token = JWTAuth::getToken ();
56-
57- if ($ token ) {
58- JWTAuth::invalidate ($ token );
59- }
60- } catch (JWTException $ e ) {
61- return $ this ->respondInternalError ($ e ->getMessage ());
62- }
63-
64- return $ this ->respond ([
65- 'message ' => trans ('api.messages.logout.success ' ),
66- ]);
61+ return response ()->json ($ this ->guard ()->user ());
6762 }
6863
6964 /**
70- * Refresh a token.
65+ * Log the user out (Invalidate the token) .
7166 *
7267 * @return \Illuminate\Http\JsonResponse
7368 */
74- public function refresh ( )
69+ public function logout ( Request $ request )
7570 {
76- $ token = JWTAuth::getToken ();
77-
78- if (!$ token ) {
79- $ this ->respondUnauthorized (trans ('api.messages.refresh.token.not_provided ' ));
80- }
81-
8271 try {
83- $ refreshedToken = JWTAuth:: refresh ( $ token );
84- } catch (JWTException $ e ) {
72+ $ request -> user ()-> token ()-> revoke ( );
73+ } catch (\ Exception $ e ) {
8574 return $ this ->respondInternalError ($ e ->getMessage ());
8675 }
8776
8877 return $ this ->respond ([
89- 'status ' => trans ('api.messages.refresh.status ' ),
90- 'token ' => $ refreshedToken ,
78+ 'message ' => trans ('api.messages.logout.success ' ),
9179 ]);
9280 }
9381}
0 commit comments