【发布时间】:2016-02-10 10:57:17
【问题描述】:
我在 Laravel 中使用 Cartalyst Sentinel 进行用户身份验证。
我已经创建了我的表单来添加一个新用户。
出于某种奇怪的原因,密码不会通过Sentinel::register() 传递,除非我将密码字段放入 User 类模型中的 $fillable 数组中。
这是一个潜在的安全问题。
我怎样才能解决这个问题?使用 Sentinel 创建新用户时,我一定缺少一些东西(而且 Sentinel 文档中的有用信息非常少)。
只是简要介绍一下我在代码方面所做的事情。我的数组中填充了创建用户所需的字段。这个数组被传递到Sentinel::register()。一切似乎都很好,但是当我去查看数据库时,密码字段是空白的。
$newUser = array(
'_token' => Input::get('_token'),
'email' => Input::get('email'),
'password' => Input::get('password'),
'first_name' => Input::get('first_name'),
'middle_name' => Input::get('middle_name'),
'last_name' => Input::get('last_name'));
$user = Sentinel::register($newUser);
附注:很遗憾,我无法切换身份验证系统。我需要使用 Sentinel。
【问题讨论】:
-
Sentinel::register使用填充方法,因此如果您想批量分配,您必须在模型上的$fillable中提供password字段。
标签: laravel laravel-5.1 cartalyst-sentinel