Header Ads

Header ADS

Laravel admin login logout without any package Use.

Route::controller(AdminController::class)->group(function () {
    Route::get('/admin/login', 'adminLogin')->name('admin.login');
    Route::get('/admin/dashboard', 'adminDashboard')->name('admin.dashboard');
    Route::get('admin/logout', 'adminLogout')->name('admin.logout');
    Route::post('/login', 'login')->name('admin.login.submit');

}); 


//controller code

class AdminController extends Controller
{
    public function adminDashboard()
    {
        return view('admin.index');

    } //End method

    public function adminLogin()
    {
        if (Auth::check()) {
            return redirect('/admin/dashboard'); // Redirect if already logged in
        }

        return view('admin.admin_login');

    } //End method


    // Handle login
    public function login(Request $request)
    {
        $credentials = $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);

        if (Auth::attempt($credentials)) {
            $request->session()->regenerate();
            return redirect()->intended('/admin/dashboard');
        }

        return back()->withErrors([
            'email' => 'The provided credentials do not match our records.',
        ]);
    }

    public function adminLogout(Request $request)
    {
        Auth::guard('web')->logout();
        $request->session()->invalidate();
        $request->session()->regenerateToken();
        return redirect('/admin/login');
    } //End adminLogout method
}

//login form blade code,

<div class="form-body">
                                        <form class="row g-3" method="POST" action="{{ route('admin.login.submit') }}">
                                            @csrf
                                           
                                            <div class="col-12">
                                                <label for="inputEmailAddress" class="form-label">Email Address</label>
                                                <input type="email" class="form-control" id="email" type="email" name="email" :value="old('email')"  placeholder="Email Address">
                                            </div>
                                            <div class="col-12">
                                                <label for="inputChoosePassword" class="form-label">Enter Password</label>
                                                <div class="input-group" id="show_hide_password">
                                                    <input type="password"
                                                    name="password" class="form-control border-end-0" id="password"   placeholder="Enter Password"> <a href="javascript:;" class="input-group-text bg-transparent"><i class='bx bx-hide'></i></a>
                                                </div>
                                            </div>
                                       
                                           
                                            <div class="col-12">
                                                <div class="d-grid">
                                                    <button type="submit" class="btn btn-primary"><i class="bx bxs-lock-open"></i>Sign in</button>
                                                </div>
                                            </div>
                                        </form>
                                    </div>




No comments

Theme images by fpm. Powered by Blogger.