検索

ホームページ  >  に質問  >  本文

Laravel でのユーザーの認証と確認メッセージの表示に関する問題

<p>Laravel でのユーザーの認証と検証メッセージの表示に問題があります。ログインしようとすると、ユーザーが正しく認証されず、認証エラー メッセージが表示されません。 </p> <p>Laravel の公式ドキュメントに従って認証と検証を行いましたが、人工知能の助けを借りても期待した結果は得られませんでした。私のコードの一部を以下に示します。 </p> <pre class="brush:php;toolbar:false;">パブリック関数ストア(Request $request) { $request->validate([ '電子メール' => '必須|電子メール', 'パスワード' => '必須'、 ]); $credentials = $request->only('メールアドレス', 'パスワード'); if (auth()->attempt($credentials)) { $user = auth()->user(); $request->session()->put('user', $user); return redirect()->route('home'); } throw ValidationException::withMessages([ '電子メール' => '電子メールまたはパスワードが無効です。', ]); }</pre> <p>これは HTML コードです: </p> <pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html lang="ja"> <頭> <title>ログイン</title> </head> <本体> <h1>ログイン</h1> <フォームアクション="/ログイン"メソッド="post"" @csrf <input type="email" name="email" placeholder="Email"> <入力タイプ="パスワード"名前="パスワード"プレースホルダー="パスワード"> <入力タイプ = "送信" 値 = "ログイン" > </フォーム> </ボディ> </html></pre> <p>最後に、ルート: </p> <pre class="brush:php;toolbar:false;"><?php Illuminate\Support\Facades\Route を使用します。 App\Http\Controllers\UserController を使用します。 App\Http\Controllers\HomeController を使用します。 App\Http\Controllers\LoginController を使用します。 Route::get('/users', [UserController::class, 'index'])->name('users.index'); Route::get('/users/create', [UserController::class, 'create']); Route::post('/users', [UserController::class, 'store']); Route::get('/users/{user}', [UserController::class, 'show']); Route::get('/users/{user}/edit', [UserController::class, 'edit']); Route::put('/users/{user}', [UserController::class, 'update']); Route::delete('/users/{user}', [UserController::class, 'destroy'])->name('users.destroy'); Route::get('/home', [HomeController::class, 'index'])->name('home'); Route::get('/login', [LoginController::class, 'index'])->name('login'); Route::post('/login', [LoginController::class, 'store']); ?></pre> <p>ログイン フォームに入力された認証情報を使用してユーザーを認証しようとしています。資格情報が正しければ、Laravel がユーザーを正しく認証すると期待されます。また、<code>LoginController</code> の <code>store()</code> メソッドでも <code>$request->validate([...])</code> を使用します。検証ルールが設定されています。電子メールとパスワードのフィールドが正しく入力されていない場合、Laravel は <code>login.blade.php</code> ビューにエラー メッセージを表示すると予想します。 </p> <p>正しい資格情報を使用してログインフォームを送信すると、Laravel はユーザーを正しく認証できず、エラーメッセージが表示されずにログインページにリダイレクトされます。空のフィールドまたは無効なデータを含むフォームを送信すると、対応するエラー メッセージもビューに表示されません。代わりに、フォームはフィードバックなしでログイン ページにリダイレクトされます。 </p> <p>何かが欠落しているか、正しく構成されていないため、Laravel がユーザーを適切に認証せず、検証メッセージを表示していないと思われます。 </p> <p>この問題を解決するためにご協力いただければ幸いです。 </p>
P粉071626364P粉071626364451日前688

全員に返信(1)返信します

  • P粉502608799

    P粉5026087992023-09-05 00:46:08

    最初に電子メールとパスワードを確認しましたが、これは問題ありません。ログインに失敗した後、例外がスローされたため、ログイン ページにリダイレクトされません。そのため、エラーが発生して前のページにリダイレクトされるはずです。

    したがって、store メソッドを次のように変更します。

    リーリー

    次に、ログイン ページのブレード ファイルで次のコードを使用します。これにより、エラーが出力されます。必要に応じてデザインやその他のコンテンツを変更します

    リーリー

    返事
    0
  • キャンセル返事