首页 文章

可以't use Laravel'的认证

提问于
浏览
2

我'm trying to configure the laravel' s认证适合我的数据库 . 但无论我做什么,在LoginController中覆盖像 protected $table='my_table';public function username() { return 'email_user'} 这样的属性,它会忽略所有内容 . 有谁知道如何使用不同的数据库参数laravel的auth?

这是我在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

namespace 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 回答

  • 2

    在您的登录表单中,使用 name=password 保留密码字段:

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

相关问题