Auth::attempt 不工作。拉拉维尔 4

Posted

技术标签:

【中文标题】Auth::attempt 不工作。拉拉维尔 4【英文标题】:Auth::attempt not working. Laravel 4 【发布时间】:2014-08-31 08:33:58 【问题描述】:

我得到了下一个代码:

    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,它会显示数据库中的用户名和密码,那么我做错了什么?

【问题讨论】:

【参考方案1】:

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

public function getAuthPassword()

     return $this->attributes['contrasena'];

【讨论】:

【参考方案2】:
 public function loguearUsu()
    $datosdeusu = array(
        'nick_name' => Input::get('username'),
        'contrasena' => Input::get('Contrasena'),
                        );

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

您在注册时的 Input::get('contrasena') 与登录不一样,请重新检查

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

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

        return Redirect::to('main');

    

【讨论】:

我刚刚这样做并给出了这个 sql 错误:“未找到列:1054 Unknown column '_token' in 'where 子句'(SQL: select * from usuarios where _token = l7f9TJkDFHqbisqPWL2FVo0XPfLpfL0ORKTTGSW8 和username = Juanpedroso 和 Contrasena = qqqq 限制 1)" 并且通过查看 Auth 没有对我的通行证进行散列以将其与我数据库中的通行证进行比较:“$2y$10$On7q/pORrwWvfgN1QHoxze7Dl2e6t4KT6n8KY2JkkeFROVuGyUt1O”将“qqqq”与哈希值进行比较。 从 Laravel 4.1 开始,您需要在表上创建一个名为 remember_token 的列。在此处阅读更多信息,laravel.com/docs/upgrade#upgrade-4.1

以上是关于Auth::attempt 不工作。拉拉维尔 4的主要内容,如果未能解决你的问题,请参考以下文章

拉拉维尔 | LinkedIn 和 Socialite - 不传递参数

拉拉维尔 |共享主机路由无法正常工作

Laravel 4 Auth:尝试不工作

Laravel Auth::attempt 如何知道 Table

方法保存不存在。拉拉维尔

选择 2 不显示选定选项。 (拉拉维尔)