使用Laravel 5进行身份验证时出现问题

Gae*_*bze 2 mysql laravel-5

我正在尝试使用laravel 5登录用户.这是我的控制器

public function postLogin(LoginRequest $request){

        $remember = ($request->has('remember'))? true : false;

        $auth = Auth::attempt([
            'email'=>$request->email,
            'password'=>$request->password,
            'active'=>true
        ],$remember);

        if($auth){
            return redirect()->intended('/home');
        }
        else{
            return redirect()->route('login')->with('fail','user not identified');
        }

    }
Run Code Online (Sandbox Code Playgroud)

当我输入错误的凭据,一切正常,但当我输入正确的,我收到此错误消息:

ErrorException in EloquentUserProvider.php line 110:
Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\Models\User given, called in C:\xampp\htdocs\Projects\Pedagogia\Admin.pedagogia\vendor\laravel\framework\src\Illuminate\Auth\Guard.php on line 390 and defined
Run Code Online (Sandbox Code Playgroud)

我没有看到我做错了什么

Jee*_*usu 7

传递给Illuminate\Auth\EloquentUserProvider :: validateCredentials()的参数1 必须是Illuminate\Contracts\Auth\Authenticatable的实例,App\Models\User的实例给出.

该类的validateCredentials()方法Illuminate\Auth\EloquentUserProvider需要一个实例Illuminate\Contracts\Auth\Authenticable,但是你传递的是一个实例App\Models\User.简而言之,您的用户模型需要实现Illuminate\Contracts\Auth\Authenticable 接口以使用Laravels身份验证脚手架.

您的App\Models\User模型应如下所示:

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Auth\Authenticable as AuthenticableTrait;

class User extends \Eloquent implements Authenticatable 
{

}
Run Code Online (Sandbox Code Playgroud)