Laravel 10 自訂登入/註冊不會進入儀表板頁面
P粉162773626
2023-09-05 14:04:13
<p>我正在嘗試製作自己的自訂 Laravel 10 登入/註冊,因為我不想使用 breez 包,因為我想了解如何自己進行登入/註冊。 </p>
<p>但我似乎無法通過儀表板頁面的身份驗證。 </p>
<p>我在儀表板函數上使用 if 語句 <code>if(Auth::check())</code> 來對資料庫中的使用者進行驗證。 </p>
<p>但對我來說這不起作用,因為我不斷收到從重定向回登錄頁面的錯誤訊息(<strong>這只在我將新用戶註冊到資料庫時才會發生</ strong>),但每當我嘗試登入我從登入功能中收到成功訊息(<strong>進一步查看代碼</strong>),同時仍在登入頁面中。 </p>
<p><strong>AuthController(儀表板):</strong></p>
<pre class="brush:php;toolbar:false;">public function dashboard(): View
{
if(Auth::check()) {
return view('auth.dashboard');
}
return view('auth.login')->with('error', 'You are not allowed to access');
}</pre>
<p><strong>AuthController(登入):</strong></p>
<pre class="brush:php;toolbar:false;">public function loginPost(Request $request): RedirectResponse
{
$request->validate([
'email' => 'required',
'password' => 'required'
]);
$credentials = $request->only('email', 'password');
if(Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended(route('dashboard'))->with('success', 'You have successfully logged in');
}
return redirect(route('login'))->with('error', 'Oppes! You have entered invalid credentials');
}</pre>
<p><strong>web.php</strong></p>
<pre class="brush:php;toolbar:false;">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');</pre>
<p>我還沒有找到任何解決方案,因此如果有人可以幫助我,我將不勝感激。 </p>
hii,您的登出功能受到中間件的保護,您還需要新增儀表板路由中間件,您可以將需要驗證中間件的路由分組。
您的路線
您的控制器:
您的登入刀片
您的註冊頁面
我想這會解決您的所有疑問