我有两个登录面板。一种用于管理员,一种用于供应商。两者都使用一个公共文件进行计算之一。
那么我的问题是,如果两个用户都将在同一浏览器中同时登录,那么我如何确定哪个用户向我发送了计算请求?
我已经在使用laravel的multiAuth,并且运行良好。
为识别登录的用户,我正在使用以下代码。
if (Auth::guard('admin')->check()) {
// Calculations
}elseif(Auth::guard('merchant')->check()){
// Calculations
}
但是,当两个用户都使用同一个浏览器登录时,它将始终使我进入第一状态。
那么我有什么办法可以使用哪个Auth向我发送请求?因此,我将管理我的计算吗?
感谢进阶。
答案 0 :(得分:1)
您可以检查您的路由中间件,以检测当前在身份验证中使用的防护。
示例
$middlewares = request()->route()->gatherMiddleware();
foreach ($middlewares as $m) {
if (preg_match("/auth:/", $m)) {
list($mid, $guard) = explode(":", $m);
}
}
$guard
变量将托管您当前的防护名。在您的if语句中使用相同的内容。