无法在laravel中验证用户身份

use*_*589 7 basic-authentication laravel-4

        $userdata = array(
            'email' => Input::get('email'),
            'password'  => Input::get('password')
            );



        if (Auth::attempt($userdata)) {

            echo 'SUCCESS!';

        } else {        

            return Redirect::to('login');

        }
Run Code Online (Sandbox Code Playgroud)

当我从浏览器运行应用程序时,我收到此错误:

Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Auth\UserInterface, instance of User given, called in /home/srtpl17/Sites/yatin.sr/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 316 and defined

我做错了什么?

Ton*_*rra 7

从您的错误中可以看出,您的用户模型没有实现UserInterface(Laravel附带的默认用户模型正确执行此操作,所以我猜你做了一个自定义的)

http://github.com/laravel/laravel/blob/master/app/models/User.php

确保User模型如下所示:

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {


/**
 * Get the unique identifier for the user.
 *
 * @return mixed
 */
public function getAuthIdentifier()
{
    return $this->getKey();
}

/**
 * Get the password for the user.
 *
 * @return string
 */
public function getAuthPassword()
{
    return $this->password;
}

/**
 * Get the e-mail address where password reminders are sent.
 *
 * @return string
 */
public function getReminderEmail()
{
    return $this->email;
}

// Add your other methods here

}
Run Code Online (Sandbox Code Playgroud)

  • @warspite这个答案是正确的,请确保实现UserInterface和RemindableInterface,https://github.com/laravel/laravel/blob/master/app/models/User.php (2认同)