laravel Auth::check() fails


laravel Auth::check() fails

Auth:tempt()成功后,Auth::check()失败。我只是按照laracast.com教程进行简单的身份验证。此特定教程https://laracasts.com/series/laravel-from-scratch/episodes/15。所以,要么在4到5个版本之间做了一个轻微的更改,要么我做错了什么。

这是一个进行身份验证的函数,第二个进行检查。他们两个在同一个班。

public function store() 
{
    $credentials = Input::only('user_displayname');
    $credentials['password'] = Input::get('user_password');
    if (Auth::attempt($credentials))
    {
        return Auth::user();
    }
    return 'not logged';
}
public function status()
{
    return dd(Auth::check());
}

这是用户模型:

class User extends Eloquent implements UserInterface, RemindableInterface {
    use UserTrait, RemindableTrait;
    protected $table = 'user';
    protected $hidden = array('user_password', 'remember_token');
    protected $fillable = ['user_displayname', 'user_fname', 'user_lname', 'user_email',     'user_password'];
    public $errors;
    public static $rules = array(
        'user_displayname' => 'required|unique:user,user_displayName',
        'user_fname' => 'required',
        'user_lname' => 'required',
        'user_email' => 'required|unique:user,user_email',
        'user_password' => 'required'
    );

    public function isValid($data)
    {
        $validation = Validator::make($data, static::$rules);
        if ($validation->passes())  return true;
        $this->errors = $validation->messages();
    }
    public function getAuthPassword()
    {
        return $this->user_password;
    }
}

第二项质询。认证是使用laravel会话还是完全不同?

编辑:

Auth是否有租约时间或类似的东西,只会在时间到期后删除会话?此外,与计算机相比,我的数据库列"updated_at"answers"created_at"给出了错误的时间。所以我想,如果Auth检查某些时间,可能会因为时间被误解而总是失败。

p.S已经在stackoverflow研究了其他解决方案。

感谢

看起来像Auth::attemp()的参数;正在有效尝试使用此。

public function store() 
{
    $credentials = array('user_displayname'=>Input::get('user_displayname'),
                         'user_password'=> Input::get('user_password'));
    if (Auth::attempt($credentials))
    {
        return Auth::user();
    }
    return 'not logged';
}

我认为Laravel有一个错误。如果您使用Auth::尝试验证您的凭据,则返回true并"销毁会话"。因此,我们重定向我们的url,并使用Auth::check(),使其返回false。因为会话已销毁,您丢失了要检查的数据。

我看到你已经从这一点开始了,但另一点是laravel对保持数据库表的复数(user)和模型的单数(user)非常严格。我看到您在模型中明确地将表声明为用户,但可能会与laravel产生一些混淆。