无法使用Laravel的身份验证

时间:2018-10-27 17:47:52

标签: php laravel authentication override

我正在尝试配置laravel的身份验证以适合我的数据库。 但是无论我做什么,都在LoginController中覆盖protected $table='my_table';public function username() { return 'email_user'}之类的属性,它都会忽略所有内容。 有谁知道如何用不同的数据库来参数laravel的身份验证?

这是我在LoginController中所做的更改:

public function username()
{
    return 'email_user';
}

在用户模型中:

protected $table = "pays";
protected $primaryKey = "id_user";

public function getAuthPassword() { 
    return $this->password_user; 
}

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name_user', 'surname_user', 'email_user', 'password_user', 'sex_user', 'birth_user', 'address_user', 
    'city_user', 'pc_user', 'phone_user', 'pic_user', 'status_user', 'license_user', 'urssaf_user', 
    'remember_token', 'created_at', 'updated_at',
];

编辑:config / auth.php:

<?php

return [

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],


'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],




'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
    ],
],

];  LoginController:

<?php

命名空间App \ Http \ Controllers \ Auth;

使用App \ Http \ Controllers \ Controller; 使用Illuminate \ Foundation \ Auth \ AuthenticatesUsers;

Class LoginController类扩展了Controller {     / *     | ------------------------------------------------- -------------------------     |登录控制器     | ------------------------------------------------- -------------------------     |     |该控制器处理应用程序的身份验证用户,并且     |将它们重定向到您的主屏幕。控制器使用特征     |为您的应用程序方便地提供其功能。     |     * /

use AuthenticatesUsers;

/**
 * Where to redirect users after login.
 *
 * @var string
 */
protected $redirectTo = '/home';

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest')->except('logout');
}

public function username()
{
    return 'email_user';
}
}

1 个答案:

答案 0 :(得分:2)

在您的登录表单中,将密码字段保留为name=password

<input type="text" name="email_user">

<input type="password" name="password">