Auth::check 在 Laravel-10 的中间件中返回 false

问题描述 投票:0回答:0

我阅读了 25 个 Stackoverflow 问题、解决方案和一些博客,还观看了一些关于这个问题的 Youtube 视频。但我没有得到这个问题的解决方案。我尝试过很多次。期待有人的帮助。

授权文件

'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,
    ],'

控制器文件

    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');  }

中间件文件

    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); 
    }}

型号

    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::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");

内核

     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,从 protected $middlewareGroups WEB 转移到 protected $middleware。有任何疑问请评论我。

Note-02:我使用了use Auth而不是Illuminate\Support\Facades\Auth

注 3: 如果您想加入任何办公桌,都可以。

提前谢谢。

laravel middleware laravel-10
© www.soinside.com 2019 - 2024. All rights reserved.