猿问

Lavarel Auth::check() 不工作

我在 UserControler 检查登录: Auth :: check () == true;


if (Auth::attempt(['email' => $request->email, 'password' => $request->password]))

{

   var_dump(Auth::check());

}

但检查登录Controller: Auth :: check () == false;


请帮助我理解它。下面是我的代码:


<?php


namespace App\Http\Controllers;


use Illuminate\Foundation\Bus\DispatchesJobs;

use Illuminate\Routing\Controller as BaseController;

use Illuminate\Foundation\Validation\ValidatesRequests;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

use Illuminate\Support\Facades\Auth;

use Illuminate\Support\Facades\Session;


class Controller extends BaseController

{

    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;


   function __construct()

   {

       $this->checkLogin();

   }


   function checkLogin()

   {

      var_dump(Session::get('user'));

           view()->share('user_login', Auth::user());

   }

}


蝴蝶刀刀
浏览 87回答 1
1回答

慕仙森

Laravel 5.3 auth 检查构造函数返回 false您无法在控制器的构造函数中访问会话或经过身份验证的用户,因为中间件尚未运行。作为替代方案,您可以直接在控制器的构造函数中定义基于闭包的中间件。在使用此功能之前,请确保您的应用程序运行的是 Laravel 5.3.4 或更高版本:
随时随地看视频慕课网APP
我要回答