Fel*_*ome 5 php middleware laravel
在我的users表中,有一列rank对应于用户的权限。如果rank > 0,用户可以登录并继续,因为0inrank意味着他们被(暂时)阻止或不活动。所以我需要的是定制auth中间件,这样只有排名> 0才会被验证。
我对此做了一些研究,但没有找到准确放置代码的位置。
编辑:我之前发现了如何手动验证具有附加要求的用户(例如rank > 0),但是,我使用的是 laravels 内置功能,所以这没有多大帮助:
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
    // The user is active, not suspended, and exists.
}
(active在这种情况下(来源:laravel 文档),但可以调整)。
app/http/middleware你的调用中有中间件RedirectIfAuthenticated
您必须将其编辑为如下内容:
if (Auth::check() && Auth::user()->rank > 0) {
    return $next($request);
}
return redirect('/home');
另外,如果您想像您编写的那样手动验证用户身份,您可以检查用户对象上的级别和密码,然后使用
Auth::login($user)