【问题标题】:Lavarel Auth::check() not wokingLaravel Auth::check() 不工作
【发布时间】:2020-04-20 21:59:24
【问题描述】:

我在 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());
   }
}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    Laravel 5.3 auth check in constructor returning false

    您无法访问您的会话或经过身份验证的用户 控制器的构造函数,因为中间件还没有运行。

    作为替代方案,您可以直接定义基于闭包的中间件 在控制器的构造函数中。在使用此功能之前,请确保 你的应用程序正在运行 Laravel 5.3.4 或更高版本:

    【讨论】:

    • 你能说清楚一点吗?我正在使用 Laravel 5.6 版
    • 您应该使用 laravel 中间件来检查用户是否已登录,如上所述“您无法在控制器的构造函数中访问会话或经过身份验证的用户,因为中间件尚未运行。”跨度>
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2015-09-06
    • 2019-10-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2014-11-19
    • 2018-12-19
    相关资源
    最近更新 更多