Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

jakubjv's avatar

LAravel 10 Auht error problem..

Hello everyone, I have got issues with wrong view of errors, after fail login web browser shows status 302 instead of 433 if user insert wrong credentials..can anyone give me a advice please? .. this is login controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\LoginRequest;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{

    public function showLogin(){
        return view("admin.login-form");
    }

    public function showLayout(){
        return view("admin.admin-layout");
    }
    public function login(LoginRequest $request)
{
    $credentials = $request->getCredentials();

    if (!Auth::validate($credentials)) {
        $error = 'Neplatné údaje!';
        return view('admin.login-form', compact('error'));
    }

    $user = Auth::getProvider()->retrieveByCredentials($credentials);

    Auth::login($user);

    return $this->authenticated($request, $user);
}


     /**
     * Handle response after user authenticated
     *
     * @param Request $request
     * @param Auth $user
     *
     * @return \Illuminate\Http\Response
     */
    protected function authenticated(Request $request, $user)
    {
        return redirect('/admin-page');

    }
}

Routes

<?php

use App\Http\Controllers\AdminController;
use App\Http\Controllers\Login;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\LogoutController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
    return view('app');
});



Route::middleware(['auth'])->group(function () {
    Route::get('/admin-page', [AdminController::class, 'showAdmin']);
    Route::get('/logout', [LogoutController::class, 'logout'])->name('logout');


});

Route::post('/login', [LoginController::class, 'login'])->name('login');

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

Login blade

@extends('admin.admin-layout')
@section('content')
    <section class="vh-100 gradient-custom">
        <div class="container py-5 h-100">
            <div class="row d-flex justify-content-center align-items-center h-100">
                <div class="col-12 col-md-8 col-lg-6 col-xl-5">
                    <div class="card bg-dark text-white" style="border-radius: 1rem;">
                        <div class="card-body p-5 text-center">
                            <div class="mb-md-5 mt-md-4 pb-5">
                                <h2 class="fw-bold mb-2 text-uppercase text-white">Login</h2>
                                @if (isset($error))
                                    <div class="alert alert-danger">
                                        {{ $error }}
                                    </div>
                                @endif
                                <form action="{{ route('login') }}" method="post">
                                    @csrf
                                    <div class="form-outline form-white mb-4">
                                        <input type="username" id="username" name="username"
                                            class="form-control form-control-lg" />
                                        <label class="form-label" for="username">Username</label>
                                    </div>
                                    <div class="form-outline form-white mb-4">
                                        <input type="password" id="typePasswordX" name="password"
                                            class="form-control form-control-lg" />
                                        <label class="form-label" for="typePasswordX">Heslo</label>
                                    </div>
                                    <button class="btn btn-outline-light btn-lg px-5" type="submit">Login</button>
                                </form>
                            </div>

                            <div>
                                <a href="#hero" class="text-white-50 fw-bold">Vrať se zpět na 27STD Barbershop</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
@endsection
0 likes
2 replies
Snapey's avatar
    if (!Auth::validate($credentials)) {
        $error = 'Neplatné údaje!';
        return view('admin.login-form', compact('error'));

return redirect to the login form, not a view

jakubjv's avatar

@Snapey it doesnt work at all..still gettin status 302.. this is in network i nbrowser in headers

Request URL:
http://127.0.0.1:8000/login
Request Method:
POST
Status Code:
302 Found
Remote Address:
127.0.0.1:8000
Referrer Policy:
strict-origin-when-cross-origin

but tab response is empty,, this shows up when user input wrong credentials

This is request for login

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Factory as ValidationFactory;


class LoginRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     */
    public function authorize(): bool
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
     */
    public function rules()
    {
        return [
            'username' => 'required',
            'password' => 'required|min:8'
        ];
    }



    private function isEmail($param)
    {
        $factory = $this->container->make(ValidationFactory::class);

        return ! $factory->make(
            ['username' => $param],
            ['username' => 'email']
        )->fails();
    }

    /**
     * Get the needed authorization credentials from the request.
     *
     * @return array
     * @throws \Illuminate\Contracts\Container\BindingResolutionException
     */
    public function getCredentials()
    {

        $username = $this->get('username');

        if ($this->isEmail($username)) {
            return [
                'email' => $username,
                'password' => $this->get('password')
            ];
        }

        return $this->only('username', 'password');
    }



}

Please or to participate in this conversation.