laravel 5.2身份验证失败

时间:2016-08-31 13:48:58

标签: php laravel-5 laravel-5.2

Hello Guys我是laravel的新手。当新用户注册身份验证我是这个错误消息。如何解决我的问题 身份验证失败,显示此错误消息。

Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\customer given.

我的控制器是

    public function store(Request $request)
    {
        $user = new customer;
        $user->name=Input::get('name');
        $user->email=Input::get('email');
        $user->password=Input::get('password');
        $user->save();

        Auth::login($user);
        return redirect::home();
    }

和我的路线

        Route::get('register', 'testing@index');
        Route::post('store', 'testing@store');
        Route::get('login', 'testing@create');
        Route::post('logout', 'testing@destroy');

我的注册页面是

<form action="store" method="post">
        <label for="name">Name</label>
        <input type="text" name="name" autocomplete="off">
        <br>
        <label for="email">Email</label>
        <input type="text" name="email" autocomplete="off">
        <br>
        <label for="password">Password</label>
        <input type="text" name="password" autocomplete="off">
        <br>
        <input type="hidden" name="_token" value="{{csrf_token()}}">
        <br>
        <input type="submit" name="submit" value="Submit">
</form>

请帮助我们如何注册,登录和注销完整认证。

谢谢你,欢迎你的建议。

1 个答案:

答案 0 :(得分:1)

在不知道您的实际客户模型的情况下,我会尝试为您提供最佳匹配答案。

如果你是laravel的新手,最好的appraoch是使用

php artisan make:auth

创建:

  • 主页视图
  • App Layout
  • Auth Routes
  • Auth Controller
  • 密码重置

这将使用默认的,已存在的App \ User模型为您完成。如果您不想使用默认的App \ User并希望使用App \ Customer进行身份验证,那么您至少需要使模型扩展为Authenticable

use Illuminate\Foundation\Auth\User as Authenticatable;

class Customer extends Authenticatable
{
...
}

如果没有这个,你肯定会收到给定的错误。但是,您仍需要确保您的客户模型上有必需的字段 - 如电子邮件,密码,记住令牌等。如果您不想使用这些字段,则需要在身份验证控制器中进一步调整。

如前所述,初学者的最佳方法是使用生成的身份验证。您可以在此处找到更多信息:https://laravel.com/docs/5.2/authentication

小心 - php artisan make:auth将创建一些视图,它将覆盖具有相同名称的现有视图。

e.g。

  • /resources/views/home.blade.php
  • /resources/views/layout/app.blade.php
  • /resources/views/auth/login.blade.php
  • /resources/views/auth/register.blade.php

以及auth中的其他一些

查看代码,您只需尝试替换

$user = new customer;

$user = new User

和当然拉入用户模型

use App\User;