From 73234784c90041ebd7fa5924096dda0e5dbbbbca Mon Sep 17 00:00:00 2001 From: cgonzalesmo Date: Sat, 5 Nov 2022 11:53:41 -0500 Subject: [PATCH] Fixear los loginController y UserController --- app/Http/Controllers/Api/LoginController.php | 64 ++++++++++++++++---- app/Http/Controllers/Api/UserController.php | 38 +----------- routes/api.php | 18 +++--- 3 files changed, 61 insertions(+), 59 deletions(-) diff --git a/app/Http/Controllers/Api/LoginController.php b/app/Http/Controllers/Api/LoginController.php index fb8ffee..33d1afd 100644 --- a/app/Http/Controllers/Api/LoginController.php +++ b/app/Http/Controllers/Api/LoginController.php @@ -4,13 +4,50 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Laravel\Socialite\Facades\Socialite; +use Illuminate\Http\Request; use App\Models\User; +use App\Models\Estandar; +use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Auth; class LoginController extends Controller { + //Login normal (correo y password) + public function login(Request $request) + { - public function redirectToProvider($provider) - { + $request->validate([ + "email" => "required|email", + "password" => "required" + ]); + + $user = User::where("email", "=", $request->email)->where("estado",true)->first(); + + if (isset($user->id)) { + if (Hash::check($request->password, $user->password)) { + $token = $user->createToken("auth_token")->plainTextToken; + return response()->json([ + "message" => "Usuario logueado", + "access_token" => $token, + "nombre" => $user->name, + "apellido" => $user->lastname, + ]); + } else { + return response()->json([ + "message" => "La password es incorrecta", + ], 404); + } + } else { + return response()->json([ + "status" => 0, + "message" => "Usuario no registrado o deshabilitado", + ], 404); + } + } + + //Login con plataformas externas + //Funcion de la recepcion del provider(google-facebook-github-twitter) + public function redirectToProvider($provider){ $validated = $this->validateProvider($provider); if (!is_null($validated)) { return $validated; @@ -19,14 +56,8 @@ class LoginController extends Controller //return Socialite::driver($provider)->redirect(); } - //$out = new \Symfony\Component\Console\Output\ConsoleOutput(); - //$out->writeln("Hello from Terminal"); - //error_log('Some message here.'); - - - public function handleProviderCallback($provider) - { - + //Funcion de la respuesta del provider + public function handleProviderCallback($provider){ $validated = $this->validateProvider($provider); if (!is_null($validated)) { return $validated; @@ -80,8 +111,7 @@ class LoginController extends Controller } - protected function validateProvider($provider) - { + protected function validateProvider($provider){ //En caso se quiera iniciar sesion con facebook o github //if (!in_array($provider, ['facebook', 'github', 'google'])){ //por el momento solo con google @@ -89,4 +119,14 @@ class LoginController extends Controller return response()->json(['error' => 'Por favor usar google para loguearse'], 422); } } + + //Logout + public function logout() + { + auth()->user()->tokens()->delete(); + return response()->json([ + "message" => "Sesion cerrada" + ]); + } + } diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index 74be162..06a1be1 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -39,37 +39,7 @@ class UserController extends Controller } } - public function login(Request $request) - { - $request->validate([ - "email" => "required|email", - "password" => "required" - ]); - - $user = User::where("email", "=", $request->email)->where("estado",true)->first(); - - if (isset($user->id)) { - if (Hash::check($request->password, $user->password)) { - $token = $user->createToken("auth_token")->plainTextToken; - return response()->json([ - "message" => "Usuario logueado", - "access_token" => $token, - "nombre" => $user->name, - "apellido" => $user->lastname, - ]); - } else { - return response()->json([ - "message" => "La password es incorrecta", - ], 404); - } - } else { - return response()->json([ - "status" => 0, - "message" => "Usuario no registrado o deshabilitado", - ], 404); - } - } public function userProfile() { @@ -104,13 +74,7 @@ class UserController extends Controller ]); } - public function logout() - { - auth()->user()->tokens()->delete(); - return response()->json([ - "message" => "Sesion cerrada" - ]); - } + public function updateRoleEstado(Request $request){ $request->validate([ "id"=>"exists:users", diff --git a/routes/api.php b/routes/api.php index 55fd00a..30a5dcf 100644 --- a/routes/api.php +++ b/routes/api.php @@ -20,9 +20,8 @@ use App\Http\Controllers\Api\EvidenciasController; use App\Http\Controllers\Api\LoginController; use App\Http\Controllers\Api\NarrativasController; - -Route::post('login', [UserController::class, 'login'])->name('login'); - +//Rutas de Auth +Route::post('login', [LoginController::class, 'login'])->name('login'); Route::get('login/{provider}', [LoginController::class, 'redirectToProvider']); Route::get('login/{provider}/callback', [LoginController::class, 'handleProviderCallback']); @@ -37,18 +36,17 @@ Route::get('estados', [EstadosValoresController::class, 'listEstadosValores']); Route::get('estandares', [EstandarController::class, 'listEstandarValores']); -//CAMBIAR ESTO -//Route::get('user', [UserController::class, 'listUser']); -Route::get('user', [UserController::class, 'listUserHabilitados']); - - Route::middleware("auth:sanctum")->group(function () { - //rutas auth + //Rutas de Auth + Route::get('logout', [LoginController::class, 'logout']); + + //Rutas de Gestion de usarios Route::get('user-profile', [UserController::class, 'userProfile']); Route::get('update', [UserController::class, 'updateRoleEstado']); - Route::get('logout', [UserController::class, 'logout']); Route::post('register', [UserController::class, 'register']); + Route::get('user', [UserController::class, 'listUser']); + Route::get('enabled_users', [UserController::class, 'listUserHabilitados']); //rutas estandar Route::post('estandar', [EstandarController::class, 'createEstandar']);