【问题标题】:How do I get which user sent a request in Laravel 5.6?如何在 Laravel 5.6 中获取哪个用户发送了请求?
【发布时间】:2019-01-20 01:32:08
【问题描述】:

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

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

我已经在使用 Laravel 的 multiAuth 并且效果很好。

为了识别哪个用户已登录,我使用以下代码。

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

但是当两个用户在同一个浏览器上登录时,它总是会让我进入第一个条件。

那么有什么方法可以让我知道哪个 Auth 正在向我发送请求?那么基于此我将管理我的计算?

【问题讨论】:

  • (╯°□°)╯︵ ???? ??? ??????

标签: php laravel authentication request middleware


【解决方案1】:

您可以检查您的路由中间件以检测当前在身份验证中使用了哪个守卫。

示例

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

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

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

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2020-02-09
    • 2020-11-02
    • 1970-01-01
    • 2015-09-13
    • 2015-03-30
    相关资源
    最近更新 更多