選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

69 行
2.0KB

  1. <?php
  2. namespace App\Controllers;
  3. use App\Controllers\BaseController;
  4. use App\Models\UsuarioModel;
  5. class AdminAuth extends BaseController
  6. {
  7. public function login()
  8. {
  9. if ($this->request->getMethod() === 'post') {
  10. $rules = [
  11. 'nombreusuario' => 'required',
  12. 'password' => 'required',
  13. ];
  14. if (!$this->validate($rules)) {
  15. return redirect()->back()->with('msg', array(
  16. 'type' => 'danger',
  17. 'body' => 'Es necesario llenar todos los campos'
  18. ));
  19. }
  20. // obtener datos
  21. $data = $this->request->getPost();
  22. // Buscar usuario
  23. if (!$usuario = model(UsuarioModel::class)->findByUsername($data['nombreusuario'])) {
  24. return redirect()->back()->with('msg', array(
  25. 'type' => 'danger',
  26. 'body' => 'Revisa tus credenciales e inténtalo nuevamente'
  27. ));
  28. }
  29. // Verificar contraseña
  30. if (!password_verify($data['password'], $usuario['password'])) {
  31. return redirect()->back()->with('msg', array(
  32. 'type' => 'danger',
  33. 'body' => 'Revisa tus credenciales e inténtalo nuevamente'
  34. ));
  35. }
  36. // Inicializar sesión
  37. session()->set([
  38. 'id' => $usuario['idusuario'],
  39. 'usuario' => $usuario['nombreusuario'],
  40. 'is_logged' => true,
  41. ]);
  42. return redirect()->route('admin_home')->with('msg', array(
  43. 'type' => 'success',
  44. 'body' => 'Inicio de sesión correcto'
  45. ));
  46. }
  47. return view('AdminAuth/login');
  48. }
  49. public function logout()
  50. {
  51. $session = session();
  52. $session->remove(['id', 'usuario', 'is_logged']);
  53. return redirect()->route('admin_login');
  54. }
  55. }