Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel身份验证登录不断给出;这些凭证与我们的记录不符。”;_Laravel_Authentication_Laravel 5.4 - Fatal编程技术网

Laravel身份验证登录不断给出;这些凭证与我们的记录不符。”;

Laravel身份验证登录不断给出;这些凭证与我们的记录不符。”;,laravel,authentication,laravel-5.4,Laravel,Authentication,Laravel 5.4,我已经设置了laravel并使用了它的默认身份验证控制器,但我修改了表名和表结构,并相应地更改了RegisterController和LoginController。RegisterController工作正常,正在注册新用户,但当我尝试使用登录表单登录时,它会给出相同的验证错误:“这些凭据与我们的记录不匹配。” 我已经附加了以下文件:LoginController、RegisterController、Admin(Model)、Config->auth 我已根据电子邮件地址字段覆盖用户名字段

我已经设置了laravel并使用了它的默认身份验证控制器,但我修改了表名和表结构,并相应地更改了RegisterController和LoginController。RegisterController工作正常,正在注册新用户,但当我尝试使用登录表单登录时,它会给出相同的验证错误:“这些凭据与我们的记录不匹配。”

我已经附加了以下文件:LoginController、RegisterController、Admin(Model)、Config->auth

我已根据电子邮件地址字段覆盖用户名字段

管理模型

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
class admin extends Authenticatable
{
    use Notifiable;
    public $table = 'admin';
    public $timestamps = false;
    protected $primaryKey = 'AdminId';
    protected $fillable = ['FirstName', 'LastName', 'FirstName_ar','LastName_ar','EmailAddress','Password','IsActive','remember_token'];

    protected $hidden = ['Password', 'remember_token'];

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

注册表控制器
中,在
创建
方法中,而不是
'password'=>bcrypt($data['password'])
,执行此操作

'password' => Hash::make($data['password'])
可能是因为您在注册时对密码使用了
bcrypt
散列方法,但在登录时,它使用了不同的散列方法。 确保导入该类

use Illuminate\Support\Facades\Hash;
注册表控制器
文件的顶部。 这里需要注意的另一件事是,在数据库中插入新用户记录时,确保默认情况下电子邮件小写,在登录时,确保电子邮件也小写。默认情况下,某些数据库区分大小写。所以你可能有问题。 就像数据库里有封电子邮件一样, Admin@example.com当记录时,您会给出admin@example.com,在这种情况下,它将不匹配。 希望这有帮助

<?php

return [

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

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

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


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

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

];
'password' => Hash::make($data['password'])
use Illuminate\Support\Facades\Hash;