Auth ::尝试不起作用。 Laravel 4

时间:2014-07-10 04:35:17

标签: php authentication login laravel laravel-4

我收到了下一个代码:

    public function registrarUsu(){
$datosregistro = array(
    null, 
    "Carlos Delgado",
    "Gonzalez Padron",
    Input::get('username'),
    Hash::make(Input::get('contrasena')),
    );
$consulta = DB::insert('insert into usuarios (id, nombres, apellidos, nick_name, contrasena) values ( ?, ?, ?, ?, ?)', $datosregistro);
DB::commit($consulta);
}

它的作用是什么;从我早期创建的简单登录表单中获取用户名和密码,它完成它的工作,抓取所有数据并将其保存到数据库(静态字段仅用于演示)。问题是当我尝试使用下一个函数验证用户时:

    public function loguearUsu(){
        $datosdeusu = array(
            'nick_name' => Input::get('username'),
            'contrasena' => Input::get('Contrasena'),
                            );

if(Auth::attempt($datosdeusu)){
    return Redirect::to('/');
}}

我认为问题是密码,每次我尝试登录时只返回false,但是如果我使用var_dump它会显示用户名和密码,就像它们在数据库中一样,那么我做错了什么?

2 个答案:

答案 0 :(得分:0)

 public function loguearUsu(){
    $datosdeusu = array(
        'nick_name' => Input::get('username'),
        'contrasena' => Input::get('Contrasena'),
                        );

   if(Auth::attempt($datosdeusu)){
       return Redirect::to('/');
    }
}
寄存器上的输入:: get('contrasena')与登录不一样,重新检查

无论如何你可以使用它(如果输入是两个字段:用户名,密码)

   if(Auth::attempt(Input::all())){

        return Redirect::to('main');

    }

答案 1 :(得分:0)

您可能需要更新用户模型,因为您使用非标准字段作为密码。尝试将此添加到您的用户模型。希望有所帮助。

public function getAuthPassword()
{
     return $this->attributes['contrasena'];
}