diff --git a/app/Http/Controllers/Api/AuthApiController.php b/app/Http/Controllers/Api/AuthApiController.php new file mode 100755 index 0000000..97086be --- /dev/null +++ b/app/Http/Controllers/Api/AuthApiController.php @@ -0,0 +1,43 @@ +all(), [ + 'username' => 'required|email', + 'password' => 'required' + ]); + if($validator->fails()){ + return $this->sendError('Validation Error.', $validator->errors()); + } + + if (!Auth::attempt(['email' => $request->username, 'password' => $request->password])) { + return $this->sendError('Unauthorised.', ['error' => 'Unauthorised']); + } + $user = \App\Models\User::where('email', $request->username)->first(); + + if (empty($user)) { + $this->sendError('Error: ', ['error' => 'Email invalid']); + } + + // Creating a token without scopes... + $token = $user->createToken($user->id . ' token ' . time(), ['*'])->accessToken; + + $data['access_token'] = $token; + $data['token_type'] = 'Bearer'; + $data['expires_in'] = 1296000; + $data['refresh_token'] = $token; + + return $this->sendResponse($data, 'User login successfully.'); + // return response()->json($data, 200); + } +} diff --git a/app/Http/Controllers/Api/BaseAuthApiController.php b/app/Http/Controllers/Api/BaseAuthApiController.php new file mode 100644 index 0000000..aa479c9 --- /dev/null +++ b/app/Http/Controllers/Api/BaseAuthApiController.php @@ -0,0 +1,41 @@ + true, + 'data' => $result, + 'message' => $message, + ]; + return response()->json($response, 200); + } + + /** + * return error response. + * + * @return \Illuminate\Http\Response + */ + public function sendError($error, $errorMessages = [], $code = 404) + { + $response = [ + 'success' => false, + 'message' => $error, + ]; + + if(!empty($errorMessages)){ + $response['data'] = $errorMessages; + } + return response()->json($response, $code); + } +} \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 2199bd8..26e967f 100755 --- a/routes/api.php +++ b/routes/api.php @@ -2,6 +2,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; +use App\Http\Controllers\Api\AuthApiController; /* |-------------------------------------------------------------------------- @@ -31,4 +32,7 @@ Route::group( ['middleware' => ['client']], function() { // Route::resource('info', \App\Http\Controllers\Profile\InfoController::class); }); -Route::post('/keygen/login', [\App\Http\Controllers\KeygenController::class, 'login'])->name('keygen.login'); +// Route::post('/keygen/login', [\App\Http\Controllers\KeygenController::class, 'login'])->name('keygen.login'); + +Route::post('/login', [AuthApiController::class, 'login']); +