From dbc542131885199753bddbf720220bf1853a1483 Mon Sep 17 00:00:00 2001 From: Muhammad Sulaiman Yusuf Date: Sun, 10 Jul 2022 02:42:58 +0700 Subject: [PATCH] implement remember me --- app/Http/Controllers/AuthController.php | 129 ++++++++++++------------ 1 file changed, 67 insertions(+), 62 deletions(-) diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index f50d5c2..8dabcfd 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -10,66 +10,71 @@ use App\Models\Role; class AuthController extends Controller { - public function __construct() - { - $this->middleware('auth:api', ['except' => ['login']]); - } - - public function login(Request $request) - { - $username = $request->username; - $password = $request->password; - $is_mobile = $request->is_mobile; - - if(empty($username) || empty($password)){ - return response()->json(['status'=>'error','message'=>'You must fill all the fields'], 400); - } - - $user = User::where('username', $username)->where('password', md5($password))->first(); - - if($is_mobile){ - $fcm_token = $request->fcm_token; - - if(!$fcm_token || $fcm_token==""){ - return response()->json(['status'=>'error','message'=>'FCM Token is required'], 400); - die(); - } - - $dataUpdateFcm = array( - "fcm_token"=>$fcm_token - ); - - $hr = User::find($user->id); - - if($hr){ - $hr->update($dataUpdateFcm); - } - } - - $dataRole = Role::find($user->role_id); - - if($dataRole){ - $user->role = $dataRole; - } - - - if (! $token =Auth::login($user)) { - return response()->json(['error' => 'Unauthorized'], 401); - } - - return $this->respondWithToken($token, $user); - } - - protected function respondWithToken($token, $user) - { - return response()->json([ - 'code' => 200, - 'data' => array( - 'data_user' => $user, - 'access_token' => $token, - 'token_type' => 'bearer', - 'expires_in' => auth()->factory()->getTTL() * 360 - ), - ]); - } + public function __construct() + { + $this->middleware('auth:api', ['except' => ['login']]); + } + + public function login(Request $request) + { + $username = $request->username; + $password = $request->password; + $remember = $request->remember; + $is_mobile = $request->is_mobile; + + if(empty($username) || empty($password)){ + return response()->json(['status'=>'error','message'=>'You must fill all the fields'], 400); + } + + $user = User::where('username', $username)->where('password', md5($password))->first(); + + if($is_mobile){ + $fcm_token = $request->fcm_token; + + if(!$fcm_token || $fcm_token==""){ + return response()->json(['status'=>'error','message'=>'FCM Token is required'], 400); + die(); + } + + $dataUpdateFcm = array( + "fcm_token"=>$fcm_token + ); + + $hr = User::find($user->id); + + if($hr){ + $hr->update($dataUpdateFcm); + } + } + + + $dataRole = Role::find($user->role_id); + + if($dataRole){ + $user->role = $dataRole; + } + + + if (! $token =Auth::login($user)) { + return response()->json(['error' => 'Unauthorized'], 401); + } + + return $this->respondWithToken($token, $user, $remember); + } + + protected function respondWithToken($token, $user, $remember) + { + $ttl = 60; + if($remember) + $ttl = 10080; + return response()->json([ + 'code' => 200, + 'data' => array( + 'data_user' => $user, + 'access_token' => $token, + 'token_type' => 'bearer', + 'expires_in' => auth()->factory()->getTTL() * $ttl, + ), + ]); + } }