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 中的单元测试:设置当前经过身份验证的用户时出错