AuthController.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Controllers;
  3. use App\Models\UserModel;
  4. use CodeIgniter\API\ResponseTrait;
  5. class AuthController extends BaseController
  6. {
  7. use ResponseTrait;
  8. public function login()
  9. {
  10. $userModel = new UserModel();
  11. $data = $this->request->getJSON(true);
  12. $user = $userModel->findByEmail($data['email']);
  13. if (!$user || !password_verify($data['password'], $user['password_hash'])) {
  14. return $this->failUnauthorized('Credenciales inválidas');
  15. }
  16. // Aquí podrías generar un JWT o sesión
  17. return $this->respond([
  18. 'message' => 'Login exitoso',
  19. 'user' => [
  20. 'id' => $user['id'],
  21. 'email' => $user['email'],
  22. 'role' => $user['role']
  23. ]
  24. ]);
  25. }
  26. public function register()
  27. {
  28. $userModel = new UserModel();
  29. $data = $this->request->getJSON(true);
  30. $userModel->insert([
  31. 'username' => $data['username'],
  32. 'email' => $data['email'],
  33. 'password_hash' => password_hash($data['password'], PASSWORD_DEFAULT),
  34. 'role' => $data['role'] ?? 'user'
  35. ]);
  36. return $this->respondCreated(['message' => 'Usuario registrado']);
  37. }
  38. }