我如何在laravel 5.6中获得哪种使用发送请求?

时间:2018-08-13 10:32:23

标签: php laravel authentication request middleware

我有两个登录面板。一种用于管理员,一种用于供应商。两者都使用一个公共文件进行计算之一。

那么我的问题是,如果两个用户都将在同一浏览器中同时登录,那么我如何确定哪个用户向我发送了计算请求?

我已经在使用laravel的multiAuth,并且运行良好。

为识别登录的用户,我正在使用以下代码。

if (Auth::guard('admin')->check()) {
  // Calculations
}elseif(Auth::guard('merchant')->check()){
  // Calculations
}

但是,当两个用户都使用同一个浏览器登录时,它将始终使我进入第一状态。

那么我有什么办法可以使用哪个Auth向我发送请求?因此,我将管理我的计算吗?

感谢进阶。

1 个答案:

答案 0 :(得分:1)

您可以检查您的路由中间件,以检测当前在身份验证中使用的防护。

示例

$middlewares = request()->route()->gatherMiddleware();

foreach ($middlewares as $m) {
    if (preg_match("/auth:/", $m)) {
        list($mid, $guard) = explode(":", $m);
    }
}

$guard变量将托管您当前的防护名。在您的if语句中使用相同的内容。