laravel 中的身份验证问题

Posted

技术标签:

【中文标题】laravel 中的身份验证问题【英文标题】:Problems with authentication in laravel 【发布时间】:2016-12-30 06:58:29 【问题描述】:

我更改了用户表。它与之前的表“panel_users”完美配合,我在用户模型中将表更改为“管理员”:

protected $table    = 'admins';    

在 AuthController 中:

return Validator::make($data, [
    'name' => 'required|max:255',
    'email' => 'required|email|max:255|unique:admins',
    'password' => 'required|min:6|confirmed'
]);

注册工作正常,但是当我尝试使用正确的凭据登录时,页面刷新并出现错误“这些凭据与我们的记录不匹配”。发生。

表“管理员”与我之前的表具有相同的字段,还有一些额外的字段。

【问题讨论】:

我唯一能想象的是,像config/auth.php 这样的一些身份验证文件被硬编码为使用users 表。顺便说一句,如果您想要不同的用户角色,使用链接到您的users 表的user_roles 表可能更容易和更聪明。反正对答案很感兴趣。 @Loek 在我的config/auth.php 表名中没有硬编码。我改用雄辩的。不幸的是,我必须使用不是由我创建的数据库:) 角色在不同的表中,我只需要对所有用户都使用这个,而不管角色。 【参考方案1】:

正如@Loek 所说,您还需要在config/auth.php 文件中进行更改:

/*
|--------------------------------------------------------------------------
| Authentication Table
|--------------------------------------------------------------------------
|
| When using the "Database" authentication driver, we need to know which
| table should be used to retrieve your users. We have chosen a basic
| default value but you may easily change it to any table you like.
|
*/
'table' => 'users',

【讨论】:

在我的 auth.php 中,我改用 Eloquent:'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], ], 无论如何感谢您的回答!【参考方案2】:

最后,问题出在导入的表中。我已经用迁移重写了它,现在一切正常。

【讨论】:

以上是关于laravel 中的身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

没有数据库的 Laravel 中的 JWT 身份验证

处理 laravel 中的 jwt 身份验证错误

Laravel 中的单元测试:设置当前经过身份验证的用户时出错

laravel 5 身份验证更改为验证器

如何进行多个身份验证:laravel 中的用户、管理员、卖家 [关闭]

如何从 Laravel 5.1 中的表而不是“用户”表中对用户进行身份验证?