首页 文章

Laravel 5.3 Auth :: login和Auth :: loginUsingId undefined

提问于
浏览
-1

我创建了一个名为ADMIN_USER的新表,其中包含USERNAME和PASSWORD字段用于身份验证,但是当我尝试执行登录时,Hash :: check按预期返回true但Auth :: try返回false .

然后我试着在Hash :: check或Auth :: attempt之前记住登录用户,php回复时出错:调用未定义函数App \ Http \ Controllers \ Auth \ loginUsingId()

而Auth:在Hash :: check下登录并不记得任何事情 .

这是我在LoginController中的authenticate方法:

public function authenticate(Request $request)
{
    $data = $request->all();
    $user = new User();
    $user = $user->where('USERNAME' , $data['inputUsername'])->first();
    Log::info($user->PASSWORD);
    Log::info($data['inputPassword']);

    Auth:loginUsingId($user->id);

    /*
    if(Auth::attempt(array('USERNAME' => $data['inputUsername'], 'PASSWORD' => $data['inputPassword']))){
        return redirect($this->home); 
    }else{
        return redirect($this->index); 
    }
    */

    if(Hash::check($data['inputPassword'], $user->PASSWORD)){
         Auth::loginUsingId($user->id);
        return redirect($this->home); 
    }else{
        return redirect($this->index); 
    }

}

2 回答

  • 0

    Laravel预先配置了用户和auth表,用于存储会话信息,用户,盐渍密码等,因此无需创建自己的表 . 您可以在documentation中阅读更多相关信息 .

    除非您修改身份验证类,否则Laravel配置将不知道如何与ADMIN_USERS通信 .

    查看应用程序的数据库/迁移文件夹,你应该找到一个timestamp_create_users_table.php文件,其中包含一个迁移,用于创建一个包含id,name,email,password,token和timestamps的users表 .

    如果你没有看到,那么运行:

    php artisan make:auth
    

    在迁移文件夹中拥有该迁移文件后,就可以运行了 .

    php artisan migrate
    

    运行后检查数据库,您应该看到用户表 . 我很确定这会解决您的身份验证问题 .

    我建议你通过laracasts上的一些免费课程 . 它应该可以帮助您快速提速 .

    希望这可以帮助 .

  • -1

    我通过在我的数据库中将PASSWORD更改为密码和ID来解决我的问题 .

相关问题