AuthController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\User;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Hash;
  6. class AuthController extends Controller
  7. {
  8. public function register()
  9. {
  10. return view('auth.register');
  11. }
  12. public function store()
  13. {
  14. $validated = request()->validate([
  15. 'name' => 'required|min:5|max:40',
  16. 'email' => 'required|email|unique:users,email',
  17. 'password' => 'required|confirmed|min:5|max:40'
  18. ]);
  19. $user = User::create([
  20. 'name' => $validated['name'],
  21. 'email' => $validated['email'],
  22. 'password' => Hash::make($validated['password'])
  23. ]);
  24. return redirect()->route('ideas.index')->with('success', 'Registration successful!')->withInput();
  25. }
  26. public function login(Request $request)
  27. {
  28. return view('auth.login');
  29. }
  30. public function authenticate(Request $request)
  31. {
  32. $validated = request()->validate([
  33. 'email' => 'required|email',
  34. 'password' => 'required|min:5|max:40'
  35. ]);
  36. if(auth()->attempt($validated))
  37. {
  38. $request->session()->regenerate();
  39. return redirect()->route('ideas.index')->with('success', 'Login successful!');
  40. }
  41. return redirect()->route('ideas,login')->withErrors(['email' => 'Wrong email or password.']);
  42. }
  43. public function logout(Request $request)
  44. {
  45. auth()->logout();
  46. $request->session()->invalidate();
  47. $request->session()->regenerateToken();
  48. return redirect()->route('ideas.index')->with('success', 'Logout successful!');
  49. }
  50. }