Php 如何将信息手动传递到Laravel中的寄存器控制器

Php 如何将信息手动传递到Laravel中的寄存器控制器,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,创建用户而最终用户不必键入详细信息 类似于 User::classcreate([ 'email' => $email, 'password' => $rand_pass, ..... ]); 提前感谢您的想法和反馈:) 用例是。 最终用户通过键入电子邮件邀请其他用户使用该服务,并在向新用户发送电子邮件及其创建的详细信息之前使用随机密码创建一个用户。您可以简单地使用用户的创建()方法模型: $userData = [ 'email' => 'some@email.com'

创建用户而最终用户不必键入详细信息

类似于

User::classcreate([
'email' => $email,
'password' => $rand_pass,
.....
]);
提前感谢您的想法和反馈:)

用例是。
最终用户通过键入电子邮件邀请其他用户使用该服务,并在向新用户发送电子邮件及其创建的详细信息之前使用随机密码创建一个用户。

您可以简单地使用用户的创建()方法模型:

$userData = [
  'email' => 'some@email.com',
  'password' => 'somepassword'
];
$newUser = User::create($userData);
您还需要对密码进行哈希运算,以便它与Laravel的授权一起工作。将以下内容添加到您的用户模型中-它将在密码保存到数据库之前对其进行哈希运算:

public function setPasswordAttribute($password)
{
  $this->attributes['password'] = Hash::make($password);
}

您只需使用用户的模型的create()方法即可:

$userData = [
  'email' => 'some@email.com',
  'password' => 'somepassword'
];
$newUser = User::create($userData);
您还需要对密码进行哈希运算,以便它与Laravel的授权一起工作。将以下内容添加到您的用户模型中-它将在密码保存到数据库之前对其进行哈希运算:

public function setPasswordAttribute($password)
{
  $this->attributes['password'] = Hash::make($password);
}

你的代码就快到了。应该是这样的:

User::create([
'email' => $email,
'password' => bcrypt($rand_pass),
]);

但是如果你想散列密码,你也应该通过电子邮件将密码发送给该用户(这不是很安全)。当用户第一次登录时,您至少应该要求他更改密码。

您的代码就快到了。应该是这样的:

User::create([
'email' => $email,
'password' => bcrypt($rand_pass),
]);

但是如果你想散列密码,你也应该通过电子邮件将密码发送给该用户(这不是很安全)。当用户第一次登录时,您至少应该要求他更改密码。

实际上,密码散列是怎么回事,当以这种方式创建用户时,密码不会在数据库中散列。如何复制此功能?或者,如果您生成一个随机密码并将其与
hash
一起存储在数据库中,则最好按照正常注册时的思路将其传递,即不要将过程分割为两个位置。@DaleSnowdon。以后如何检索原始密码?如果没有原始密码,用户如何登录?要存储密码,请使用Hash::make()@smartrahat。我永远不希望从安全角度查看用户密码。用户仍然可以登录,因为当他们提交其原始密码时,它会被散列为散列密码,然后与存储在数据库中的散列密码进行比较。只要确保使用相同的加密算法和任何IVs(初始化向量)。关于IV的注意事项:每个用户都应该有其唯一的IV,如果两个用户拥有相同的密码,则不会在数据库中显示。幸运的是,我使用的是Laravel框架,它可以为我处理所有这些@DaleSnowdon你说这是一个随机密码。因此,我认为PHP将使用
rand()
函数对其进行随机化,然后将其存储在哈希值中,没有人会知道任何未被删除的密码的信息。实际上,密码哈希是怎样的呢?当以这种方式创建用户时,密码不会在数据库中散列。我如何复制此功能?或者,如果您生成一个随机密码并将其与
hash
一起存储在数据库中,则最好按照正常注册时的思路将其传递,即不要将过程分割为两个位置。@DaleSnowdon。以后如何检索原始密码?如果没有原始密码,用户如何登录?要存储密码,请使用Hash::make()@smartrahat。我永远不希望从安全角度查看用户密码。用户仍然可以登录,因为当他们提交其原始密码时,它会被散列为散列密码,然后与存储在数据库中的散列密码进行比较。只要确保使用相同的加密算法和任何IVs(初始化向量)。关于IV的注意事项:每个用户都应该有其唯一的IV,如果两个用户拥有相同的密码,则不会在数据库中显示。幸运的是,我使用的是Laravel框架,它可以为我处理所有这些@DaleSnowdon你说这是一个随机密码。因此,我认为PHP会使用
rand()
函数将其随机化,然后将其存储在哈希值中,没有人会知道任何未加密密码的信息。