Laravel Auth在登录前检查列

Glu*_*ear 5 php authentication laravel

我正在使用Laravel 5.4及其内置的Auth API。我已在users表格中添加了名为的列is_admin。我想修改登录过程,以使登录仅在时有效is_admin == 1。我查看了Illuminate\Foundation\Auth\AuthenticatesUsers.phpGithub),我可以在那里进行更改,但我尽可能不打扰核心人员。有没有更优雅的方法可以做到这一点?

Glu*_*ear 4

我用类似于@Sagar Arora 的解决方案解决了这个问题。app\Http\Controllers\Auth\LoginController.php在运行时创建的中artisan make:auth,我重写了attemptLogin来自 的方法AuthenticatesUsers。这是以下代码LoginController.php

protected function attemptLogin(Request $request)
{
    return (auth()->attempt(['email' => $request->email, 'password' => $request->password, 'is_admin' => 1]));
}
Run Code Online (Sandbox Code Playgroud)

现在只有具有的用户is_admin == 1才能登录。