代码之家  ›  专栏  ›  技术社区  ›  Liam Potter Justin Ethier

Laravel基本HTTP身份验证检查返回False

  •  8
  • Liam Potter Justin Ethier  · 技术社区  · 8 年前

    我使用Laravel中提供的基本HTTP身份验证来登录我的网站。然而,当我打电话时 Auth::Check() 我总是得到 作为响应,即使我已登录。

    身份验证::Check() 不适用于基本身份验证模型,如果不适用,是否有方法检查基本身份验证以查看用户是否已登录?

    这是我的用户类:

    namespace App;
    
    use Illuminate\Foundation\Auth\User as Authenticatable;
    
    class User extends Authenticatable
    {
        /**
         * The attributes that are mass assignable.
         *
         * @var array
         */
        protected $fillable = [
            'email', 'password',
        ];
    
        /**
         * The attributes excluded from the model's JSON form.
         *
         * @var array
         */
        protected $hidden = [
            'password', 'remember_token',
        ];
    
        public function getRememberToken()
        {
            return $this->remember_token;
        }
    
        public function setRememberToken($value)
        {
            $this->remember_token = $value;
        }
    
        public function getRememberTokenName()
        {
            return 'remember_token';
        }
    }
    

    这是我设置身份验证过滤器使用的代码段

    $this->middleware('auth.basic', ['only' => ['create', 'store', 'edit', 'update', 'destroy']]);
    

    这是我的 身份验证::Check() 呼叫(始终打印0):

    public function show($id)
    {
        echo \Auth::check() ? '1' : '0';
        die();
        #.......
    }
    

    我的路线: Routes

    1 回复  |  直到 8 年前
        1
  •  3
  •   Erkan Özkök    8 年前

    它在5.2版本中发生了变化。

    如果您将使用session、csrf、cookie ext.,那么您应该在路由中使用这样的“web”中间件:

    Route::group(['middleware' => ['web']], function () {
    //
    });
    

    您可以在项目中看到新内核。php文件如下:

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
    ],
    
    'api' => [
        'throttle:60,1',
    ],
    ];
    

    更多信息: https://laravel.com/docs/5.2/releases