I have this route define in web.php
web.php
Route::group(['prefix' => 'user'], function () {
Route::get('login', [FrontendController::class ,'showLoginForm'])->name('user.login-show');
Route::post('login', 'AppHttpControllersLoginController@login')->name('login.post');
}
this is my login controller
<?php
namespace AppHttpControllers;
use Auth;
use AppUser;
use AppHttpControllersController;
use IlluminateHttpRequest;
use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateSupportFacadesHash;
use DarryldecodeCartFacadesCart;
class LoginController extends Controller
{
use AuthenticatesUsers;
//
protected $redirectTo = '/user/dashboard';
public function __construct()
{
$this->middleware('guest:web')->except('logout');
}
public function showLoginForm()
{
return view('pages.login');
}
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6',
'remember_me'=>'nullable'
]);
$request->merge(['user_type'=>'0']);
if (Auth::guard('web')->attempt([
'email' => $request->email,
'password' => $request->password,'user_type' => $request->user_type
], $request->input('remember_me'))) {
$userID = Auth::guard('web')->user()->id;
return redirect()->intended(route('web.dashboard'));
}
else{
return back()->withErrors(['message'=>'Username or Password is Invalid'])->withInput($request->all());
}
}
public function logout(Request $request)
{
Auth::guard('web')->logout();
$request->session()->invalidate();
}
public function dashboard()
{
}
}
config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
RedirectedIfAuthenticated Middleware:
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
if i try to log in i’m then in login controller able to get user id through this code able to get user id using this code Auth::guard('web')->user()->id;
but after this login function code is executed then not able to get user id in other methods or controller, it returns Attempt to read property "id" on null
because user is null & i’m able to access login page even if i’m logged in. I have two guards one for admin other one for user
Any solution to fix this login issue, Thanks