Reputation: 85
I read 25 Stackoverflow questions, solutions, and some blogs, also watch some Youtube videos on this problem. But I did not get a solution for this problem. I tried this so many times. Expecting someone's help.
Auth file
'defaults' => [
'guard' => 'web',
// 'guard' => 'Registrationform',
'passwords' => 'users'
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'Registrationform' => [
// 'redirectTo'=> 'index',
'driver' => 'session',
'provider' => 'Registrationforms',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'Registrationforms' => [
'driver' => 'eloquent',
'model' => App\Models\Registrationform::class,
],'
controller file
public function login(){
// if(Auth::guard('Registrationform')->user()){
// return redirect()->route('dashboard');
// }
return view('login');
}
public function authenticate(Request $request):RedirectResponse{
$request->validate([
'email' => 'required',
'password' => 'required',
]);
// // $email = Request::input('email');
// // $password = Hash::make(Request::input('password'));
$credentials = $request->only('email', 'password');
// // dd($credentials);
// // $credentials = $request->only(['email','password']);
// if (aith()->attempt(['email' => $email, 'password' => $normal])){
// $remember=!empty($request->remember)? true : false;
// if (Auth::attempt(['email' => $request->email,'password' =>$request-
>password],$remember)) {
//dd($credentials);
//dd(Auth::user());
//dd(Auth::attempt($credentials));
if(Auth::guard('Registrationform')->attempt($credentials)){
// if(DB::raw){
// dump("This block is working");
// dd("wow");
// dd(Auth::guard('Registrationform')->login($credentials));
// if (Auth::login($credentials))
// {
$request->session()->regenerate();
$request->session()->put('user',$credentials['email']);
return redirect()->intended('index');
}
// $request->session()->regenerate();
// return redirect()->intended(route('index'));
//call e asen bujay
// return "hello";
// }
// $user = Registrationform::where('email','=',$request->email)->first();
// if($user && $request->password == $user->password){
// // return redirect()->route('index')->withSuccess('You have
Successfully loggedin');
// // Auth::login($user);
// // if(Auth::check()) {
// }
return redirect()->route("login")->withSuccess('Oppes! You have entered invalid
credentials'); }
public function index():View {
//return View('index')->withSuccess('You have successfully logged in!');
// dd(Auth::guard('Registrationform')->user());
dd(Auth::guard('Registrationform')->check());
//dd($this->guard()->check());
// {
// dd("wow");
// return view('index');
// return redirect()->route(("index"))->withSuccess('You have successfully
logged in!');
// }
// return redirect()->route('login'); }
middleware file
public function handle(Request $request, Closure $next): Response{
dd(\Auth::guard('Registrationform')->check());
// dd($this->guard()->check());
// $path=$request->path();
// // // // dd( Session::get('user'));
// if(($path=="login"||$path=="register"||$path=="index"||path=="dashboard") &&
Session::get('user'))
// {
// // dd("wow");
// // return view('index');
// // return $next($request);
// // return redirect()->route("index")->withSuccess('You have successfully
logged in!');
// // return View("index")->withSuccess('You have successfully logged in!');
// return $next($request);
// }
// elseif(($path=="login"||$path !="register"||$path=="index"||$path=="dashboard")
&& !Session::get('user')){
// return redirect()->route('login');
// }
// return $next($request);
}}
Model
class RegistrationForm extends Authenticatable{
use HasApiTokens, HasFactory, Notifiable;
protected $table = 'registrationforms';
protected $guard = 'Registrationform';
protected $primarykey = 'User_ID';
protected $fillable =
['First_Name','Last_Name','email','email_confirmation','password',
'password_confirmation','Gender','birthday_day','birthday_month',
'birthday_month','birthday_year','UserName'];
// public $timestamps = false;
protected $hidden = [
'password','password_confirmation'
];}
route
Route::post('/register', [Registrationcontroller::class,'store']);
Route::post('/authenticate', [Registrationcontroller::class, 'authenticate']);
Route::middleware(registrationform::class)->group(function(){
Route::get('/login',[Registrationcontroller::class, 'login'])->name('login');
Route::get('/register', [Registrationcontroller::class,'register'])-
>name('register');
Route::get('/index', [Registrationcontroller::class,'index'])->name('index');
Route::get('/dashboard', [Registrationcontroller::class,'dashboard'])-
>name('dashboard');});
Route::post("/logout",[Registrationcontroller::class,'logout'])->name("logout");
kernel
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\Illuminate\Session\Middleware\StartSession::class,
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's middleware aliases.
*
* Aliases may be used instead of class names to conveniently assign middleware
to routes and groups.
*
* @var array<string, class-string|string>
*/
protected $middlewareAliases = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Registrationform' => \App\Http\Middleware\registrationform::class,
];
Note-1: StartSession::class, transferred to protected $middleware from protected $middlewareGroups WEB.Have any queries just comment me.
Note-02: I used use Auth instead of Illuminate\Support\Facades\Auth.
Note-3: If you want to join anydesk you can.
Take Advance Thanks.
Upvotes: 3
Views: 1047
Reputation: 13
I found out about your problem, declare it in user.php
protected $primaryKey = 'user_id';
protected $keyType = 'string';
public $incrementing = false;
by default, the primary key will always be the id. If you declare a different column name that will serve as your primary key, don't forget to declare the codes that I stated above or else you end not reading the auth or not logging in.
Upvotes: 0
Reputation: 117
It's a bit hard to understand your code but I think it boils down to this:
Middleware is ran before your controller code. So the order of code is:
So whenever you log the user in, the middleware is called, before your user is actually logged in by the controller. So Auth::check
fails, because the login has not been executed yet.
Upvotes: 0