php - 如何在 Laravel 5.6 中获取哪个用户发送了请求?
问题描述
我有两个登录面板。一种用于管理员,一种用于供应商。两者都使用一个通用文件进行其中一项计算。
我的问题是,如果两个用户在同一个浏览器中同时登录,那么如何识别是哪个用户向我发送了计算请求?
我已经在使用 Laravel 的 multiAuth 并且运行良好。
为了识别哪个用户登录,我使用下面的代码。
if (Auth::guard('admin')->check()) {
// Calculations
}elseif(Auth::guard('merchant')->check()){
// Calculations
}
但是当两个用户在同一个浏览器上登录时,它总是会让我进入第一个条件。
那么有什么方法可以让我得到哪个 Auth 正在向我发送请求?那么基于此我将管理我的计算?
解决方案
您可以检查您的路由中间件以检测当前在身份验证中使用了哪个守卫。
例子
$middlewares = request()->route()->gatherMiddleware();
foreach ($middlewares as $m) {
if (preg_match("/auth:/", $m)) {
list($mid, $guard) = explode(":", $m);
}
}
该$guard
变量将托管您当前的警卫名称。在你的 if 语句中使用相同的。
推荐阅读
- typescript - 茉莉花模拟未在 setImmediate 中使用
- python - 我应该如何使用这个十六进制数据向设备发送 ble 命令?
- powershell - 检索需要登录的网页内容 - Invoke-WebRequest - 没有返回表单 - 没有密码 InputField 的值
- sql-server - 按 col 求和和分组时重复行
- java - Java 11 模块信息和注释处理器
- c# - C# MVC Ajax 模式验证 - 500 内部服务器错误
- amazon-web-services - 如何明确提及外部卷名?
- python - 将大熊猫数据帧的每一列与同一数据帧的每一列相乘的最有效方法
- css - IE11 中的 CSS 滚动选取框问题
- r - 基于 r 中 ids 内的值对数据进行子集化