Laravel 10のカスタムログイン/登録がダッシュボードページに入りません
P粉162773626
2023-09-05 14:04:13
<p>自分でログイン/登録を行う方法を学びたいので、breezパッケージを使用したくないので、独自のカスタムLaravel 10ログイン/登録を作成しようとしています。 </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;">パブリック関数ダッシュボード(): ビュー
{
if(認証::check()) {
return view('auth.dashboard');
}
return view('auth.login')->with('error', 'アクセスは許可されていません');
}</pre>
<p><strong>AuthController (ログイン): </strong></p>
<pre class="brush:php;toolbar:false;">パブリック関数loginPost(Request $request): RedirectResponse
{
$request->validate([
'電子メール' => '必須'、
'パスワード' => '必須'
]);
$credentials = $request->only('メールアドレス', 'パスワード');
if(Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended(route('dashboard'))->with('success', 'ログインに成功しました');
}
return redirect(route('login'))->with('error', '間違っています! 無効な認証情報が入力されました');
}</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>
こんにちは、ログアウト機能はミドルウェアによって保護されています。ダッシュボード ルーティング ミドルウェアも追加する必要があります。認証ミドルウェアを必要とするルートをグループ化できます。
リーリーあなたのルート
リーリーあなたのコントローラー:
リーリーあなたのログインブレード
リーリーあなたの登録ページ
リーリーこれであなたの疑問はすべて解決すると思います