【问题标题】:Laravel 5.4 Multi auth - Auth::guard()->user() emptyLaravel 5.4 多重身份验证 - Auth::guard()->user() 为空
【发布时间】:2017-06-21 02:32:44
【问题描述】:

我在 Laravel 5.4 中创建了一个多重身份验证测试。它使用自定义中间件、自定义 Eloquent 提供程序等。身份验证流程正在运行,我可以通过两种方式登录。但是如果用户登录,在家庭控制器中当我想用Auth::user()Auth::guard()->user()检查用户时,它是空的。 Auth::guard() 也是空的。但我不明白,为什么?!它应该包含已登录的用户实例,不是吗?

还有$request->getUserResolver() 说守卫是空的...o.O

我做错了什么?

Here it is我的测试仓库,如果你想检查我的代码。

提前谢谢你!

编辑 1:

\app\Http\Controllers\Employee\HomeController.php 中,Auth::guard()->user()Auth::user() 为空。

namespace App\Http\Controllers\Employee;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{

    public function __construct(Request $request)
    {
        $this->middleware('auth.employee:employee');
    }

    public function index(Request $request)
    {
        $users[] = Auth::user();
        $users[] = Auth::guard()->user();
        $users[] = Auth::guard('employee')->user();

        dd($users);

        return view('employees.home.index');
    }
}

【问题讨论】:

  • 在这里显示相关代码是个好主意。
  • 上次我看到一个帖子,上面有一个人只是在他们的 GitHub 存储库上放了一个链接,GitHub 关闭了大约一个小时,这个问题被否决了。真实的故事。
  • @Chay22 你想让我解释一下我的问题中的所有步骤(使用代码片段)我是如何实现多重身份验证的吗?
  • 这是个好主意。无论如何,添加一个's'Auth::guard('employees')->user(); 怎么样?在开始之前,你必须确保你的警卫在Illuminate\Auth\SessionGuard 类中使用login 方法来填充会话。我的意思是你首先是如何验证用户身份的?
  • 潜伏在您的仓库中,我认为问题出在您注册提供商Auth::provider('eloquent.employee' ...) 的方式上,您填写的驱动程序名称应该是Auth::provider('employees' ...) 而且,它不需要加载吗就在AuthServiceProvider 解决之前,比如在AppServiceProvider 中注册提供程序?不知道...

标签: php laravel authentication laravel-5 laravel-5.4


【解决方案1】:

config/auth.php中的驱动名称改成..

'employees' => [
        'driver' => 'eloquent',
        'model' => App\Models\UserEmployee::class,
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Models\Customer::class,
    ],

【讨论】:

  • 我为什么要这样做?这是我的自定义驱动程序,具有自定义身份验证条件。
【解决方案2】:

Auth::shouldUse(your_guard_name);
在你的登录函数中调用它

【讨论】:

  • 这也可以在将要使用守卫的控制器的构造函数中调用
猜你喜欢
  • 1970-01-01
  • 2017-03-29
  • 2021-05-10
  • 1970-01-01
  • 2017-12-24
  • 2017-07-08
  • 1970-01-01
  • 2018-07-21
  • 2018-10-17
相关资源
最近更新 更多