laravel - 从中间件检查 Auth::user()
问题描述
如果用户通过调用进行身份验证,我尝试检查中间件,Auth::user()
但它返回 null。我将此中间件称为protected $middleware
. Kernel.php
有没有办法从中间件检查用户是否已通过身份验证,或者我应该如何以另一种方式进行?
补充:我正在使用 Zizaco Entrust。可能是它不起作用的原因我正在使用 Laravel 5.5
我的应用程序/HTTP/Kernel.php:
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\FirstLoginPasswordChange::class,
];
我的 FirstLoginPasswordChange 中间件:
use Illuminate\Support\Facades\Auth;
use Zizaco\Entrust\Entrust;
public function handle($request, Closure $next)
{
dd(Auth::user()); // returns null
// or
dd(Auth::check()); // returns false
// or
dd(\Entrust::user()); // returns null
return $next($request);
}
}
解决方案
通过使用这篇文章
将中间件从protected $middleware
Kernel.php部分移动到 Kernel.php 部分解决了问题: http ://laraveldaily.com/password-expired-force-change-password-every-30-days/protected $routeMiddleware
推荐阅读
- maven - 构建 SNAPSHOT 时不会触发相关作业
- ssh - 如何在气流中删除/抑制警告“未验证远程识别更改”?
- node.js - 连接 && 连接.close();
- java - 是否有相当于 eclipse 的 Infinitest 的 Visual Studio Code?
- javascript - 标题中的 shopify cart.item_count 和 cart.total_price 在产品页面刷新之前不会更新
- amazon-web-services - DNS(route53) 主机名查找的 UDP 端口是什么?
- airflow - 2个任务完成后如何设置下游任务
- php - 如何在laravel的__construct中获取变量的值
- javascript - 支票 | 取消选中 - 按 ID 排列的复选框数组
- json - 如何在plsql中解析JSON?