Die benutzerdefinierte Anmeldung/Registrierung von Laravel 10 führt nicht zur Dashboard-Seite
P粉162773626
P粉162773626 2023-09-05 14:04:13
0
2
411

Ich versuche, meine eigene benutzerdefinierte Anmeldung/Registrierung für Laravel 10 zu erstellen, da ich das breez-Paket nicht verwenden möchte, sondern lernen möchte, wie ich die Anmeldung/Registrierung selbst durchführe.

Aber ich kann mich anscheinend nicht auf der Dashboard-Seite authentifizieren.

Ich verwende eine if-Anweisung if(Auth::check()) in der Dashboard-Funktion, um den Benutzer in der Datenbank zu authentifizieren.

Aber das funktioniert bei mir nicht, weil ich ständig die Fehlermeldung bekomme, dass ich zur Anmeldeseite zurückgeleitet werde (Dies passiert nur, wenn ich einen neuen Benutzer in der Datenbank registriere), aber Immer wenn ich versuche, mich anzumelden, erhalte ich eine Erfolgsmeldung von der Anmeldefunktion (Code siehe weiter unten), während ich mich noch auf der Anmeldeseite befinde.

AuthController (Dashboard):

öffentliche Funktion Dashboard(): Ansicht { if(Auth::check()) { return view('auth.dashboard'); } return view('auth.login')->with('error', 'Sie dürfen nicht darauf zugreifen'); }

AuthController (Anmeldung):

public function loginPost(Request $request): RedirectResponse { $request->validate([ 'email' => 'erforderlich', 'Passwort' => 'erforderlich' ]); $credentials = $request->only('email', 'password'); if(Auth::attempt($credentials)) { $request->session()->regenerate(); return weitergeleitet()->intended(route('dashboard'))->with('success', 'Sie haben sich erfolgreich angemeldet'); } return weitergeleitet(route('login'))->with('error', 'Oppes! Sie haben ungültige Anmeldeinformationen eingegeben'); }

web.php

Route::get('/register', [AuthController::class, 'register'])->name('register'); Route::post('/register', [AuthController::class, 'registerPost'])->name('register.post'); Route::get('/login', [AuthController::class, 'login'])->name('login'); Route::post('/login', [AuthController::class, 'loginPost'])->name('login.post'); Route::get('/dashboard', [AuthController::class, 'dashboard'])->name('dashboard'); Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth')->name('logout');

Ich habe noch keine Lösung gefunden. Wenn mir also jemand helfen kann, wäre ich dankbar.

P粉162773626
P粉162773626

Antworte allen (2)
P粉006540600

hii,您的注销功能受到中间件的保护,您还需要添加仪表板路由中间件,您可以对需要身份验证中间件的路由进行分组。

Route::middleware('auth')->group(function () { Route::get('/dashboard', [AuthController::class, 'dashboard'])->name('dashboard'); Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); });
    P粉676588738

    您的路线

    Route::get('login', [FrontendAuthController::class, 'loginGet'])->name('login'); Route::post('login', [FrontendAuthController::class, 'loginPost']); Route::post('logout', [FrontendAuthController::class, 'logout'])->name('logout'); Route::get('register', [FrontendAuthController::class, 'registerGet'])->name('register'); Route::post('register', [FrontendAuthController::class, 'registerPost']);

    您的控制器:

    validate([ 'email' => 'required|email', 'password' => 'required', ], [ 'email.required' => 'The email field is required.', 'email.email' => 'Please enter a valid email address.', 'password.required' => 'The password field is required.', ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('/'); } else { return redirect()->back()->withErrors(['email' => 'These credentials do not match our records.']); } } public function logout() { Auth::logout(); Session::flush(); // Clear all session data Session::regenerate(); // Regenerate the session ID return redirect()->route('login'); } public function registerGet() { return view('front.auth.register'); } public function registerPost(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8|confirmed', ], [ 'name.required' => 'The name field is required.', 'email.required' => 'The email field is required.', 'email.email' => 'Please enter a valid email address.', 'email.unique' => 'This email address is already registered.', 'password.required' => 'The password field is required.', 'password.min' => 'The password must be at least 8 characters.', 'password.confirmed' => 'The password confirmation does not match.', ]); // Create a new user record $user = new User(); $user->name = $request->input('name'); $user->email = $request->input('email'); $user->password = Hash::make($request->input('password')); $user->save(); // Log in the newly registered user Auth::login($user); // Redirect the user to the home page or any other desired page return redirect()->intended('/'); } }

    您的登录刀片

          Sign In  
    

    您的注册页面

          Register  
    

    我想这会解决您的所有疑问

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!