AuthenticatedController.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\View\View;
  5. use Illuminate\Support\Facades\Auth;
  6. use Illuminate\Support\Facades\Hash;
  7. use App\Models\User;
  8. class AuthenticatedController extends Controller
  9. {
  10. public function showPageLogin()
  11. {
  12. return view('auth.login');
  13. }
  14. public function showPageRegister()
  15. {
  16. return view('auth.register');
  17. }
  18. public function showPageAdmin()
  19. {
  20. return view('admin.index');
  21. }
  22. public function register(Request $request)
  23. {
  24. $validated = $request->validate([
  25. 'login' => ['required', 'min:6', 'unique:users,login'],
  26. 'full_name' => ['required', 'alpha', ''],
  27. 'phone' => ['required', 'min:16', 'max:16'],
  28. 'email' => ['required', 'email'],
  29. 'password' => ['required', 'min:8'],
  30. ]);
  31. User::create([
  32. 'login' => $validated['login'],
  33. 'full_name' => $validated['full_name'],
  34. 'phone' => $validated['phone'],
  35. 'email' => $validated['email'],
  36. 'password' => Hash::make($validated['password']),
  37. ]);
  38. return redirect()->route('auth.profile')->with('success', 'Вы зарегистрированлись в роли пользователя');
  39. }
  40. public function login(Request $request)
  41. {
  42. $validated = $request->validate([
  43. 'login' => ['required', 'min:6', 'unique:users,login'],
  44. 'full_name' => ['required', 'alpha', ''],
  45. 'phone' => ['required', 'min:16', 'max:16'],
  46. 'email' => ['required', 'email'],
  47. 'password' => ['required', 'min:8'],
  48. ]);
  49. if ($request->login === 'Admin' && $request->password === 'KorokNET') {
  50. Auth::logout();
  51. $request->session()->put('is_admin', true);
  52. $request->session()->regenerate();
  53. return redirect()->route('admin.index')->with('success', 'Вы вошли в роли администратора');
  54. }
  55. $request->session()->forget('is_admin');
  56. if (Auth::attempt([
  57. 'login' => $validated['login'],
  58. 'full_name' => $validated['full_name'],
  59. 'phone' => $validated['phone'],
  60. 'email' => $validated['email'],
  61. 'password' => Hash::make($validated['password']),
  62. ])) {
  63. $request->session()->regenerate();
  64. return redirect()->route('auth.profile')->with('success', 'Вы вошли в роли администратора');
  65. }
  66. }
  67. public function logout(Request $request)
  68. {
  69. $request->session()->forget('is_admin');
  70. if (Auth::check()) {
  71. Auth::logout();
  72. }
  73. $request->session()->invalidate();
  74. $request->session()->regenerateToken();
  75. return redirect()->route('auth.login')->with('success', 'Вы вошли в роли пользователя');
  76. }
  77. }