簡體   English   中英

Laravel 在重定向后不斷重新加載頁面

[英]Laravel keeps reloading the page after redirect

我正在嘗試創建一個簡單的登錄表單。 當我按下登錄按鈕時,一個請求被發送到我的控制器,在那里我可以看到dd($request); 接收到的數據; . 但是當我驗證數據時,如果數據不正確,頁面開始重新加載並繼續重新加載。

控制器:

class UserController extends Controller
{
    
    public function loginView()
    {
        return view('admin-login');
    }
    
    public function userLogin(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required|alphaNum|min:8',
        ]);

        $user_data = [
            'email' => $request->get('email'),
            'password' => $request->get('password'),
        ];
    
        if (Auth::attempt($user_data)) {
            return redirect('/admin');
        } else {
            return back()->with('error', 'Wrong email or password');
        }
    }
}

登錄表單:

<form style="width: 23rem;" action="{{ route('login.custom') }}" method="post">
    @csrf
    <h3 class="fw-normal mb-3 pb-3" style="letter-spacing: 1px;">Log in</h3>

    @if ($errors->any())
    <div class="alert alert-danger alert-dismissible fade show" role="alert">
        <i class="fa-solid fa-triangle-exclamation"></i>
        <strong>Error!</strong> Wrong email or password
        <button type="button" class="btn-close" data-bs-dismiss="alert"
            aria-label="Close"></button>
    </div>
    @endif

    <div class="form-outline mb-4">
        <input type="email" name="email" placeholder="Enter a valid email address"
            id="email" class="form-control form-control-lg" value="{{ old('email') }}" />
        <span class="text-danger">@error('email') {{ $message }} @enderror</span>
    </div>

    <div class="form-outline mb-4">
        <input type="password" name="password" placeholder="Enter password" id="password"
            class="form-control form-control-lg" />
        <span class="text-danger">@error('password') {{ $message }} @enderror</span>
    </div>

    <div class="pt-1 mb-4">
        <button class="btn btn-primary btn-lg btn-block login-btn"
            type="submit">Login</button>
    </div>

</form>

路線:

Route::get('/login', [UserController::class, 'loginView'])->name('login');

Route::post('custom-login', [UserController::class, 'userLogin'])->name(
    'login.custom'
);

嘗試這個

    if (Auth::check()) { // use this instead of Auth::attempt($user_data)
        return redirect('/admin');
    } else {
        return back()->with('error', 'Wrong email or password');
    }

我希望它有用!

解決方案:

我正在使用 VS Code 中的 Live Server 擴展來自動刷新頁面。 此擴展程序在重定向后一次又一次地重新加載頁面。 所以,現在關閉它后一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM