带有两个表的 Laravel 身份验证

Sai*_*ang 3 authentication laravel laravel-5 laravel-5.1

我正在尝试使用 Laravel 的内置身份验证类。在阅读它时,它似乎只根据config/auth.php文件查看一张表。根据文档,我可以使用这样的语法:

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
    // The user is active, not suspended, and exists.
}
Run Code Online (Sandbox Code Playgroud)

我担心的是,该email列在我的用户表中,而passwordauth表中。正如我上面所说,我对 Laravel 身份验证的理解是它只查找一张表。我错过了什么?

Bog*_*dan 5

实际上,解决方案非常简单。您只需要通过将其添加到您的模型来覆盖特征中getAuthPassword定义的方法:AuthenticatableUser

public function getAuthPassword()
{
    return \DB::table('auth')->where('user_id', $this->id)->pluck('password');
}
Run Code Online (Sandbox Code Playgroud)

就是这样,现在身份验证系统将auth在检查它是否与用户输入匹配之前从表中获取密码。