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

时间:2017-07-23 01:56:08

标签: laravel

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

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

Auth:在Hash :: check下登录不记得任何内容。

这是我在LoginController中的身份验证方法:

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 :(得分: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 :(得分:-1)

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

相关问题