直接从数据库添加用户[UserFrosting 0.3.1]

时间:2016-09-09 11:52:42

标签: userfrosting

我想添加一些测试用户帐户,直接从数据库中执行它会更快。

有几个我无法弄清楚的领域:

  1. secret_token:如何动态生成?有必要吗?我可以从其他帐户复制吗?
  2. 密码:尽管我以正常方式(注册页面)创建了一些帐户,但使用相同的密码,每个用户的密码字段都不同。因此,我认为它不是一个简单的复制/粘贴案例(问题也适用于从数据库更改用户的密码)。
  3. 有任何见解,谢谢。

1 个答案:

答案 0 :(得分:1)

secret_token是一个md5哈希值,由User::generateActivationToken()方法创建。它用于特殊帐户活动,如电子邮件验证,密码重置和新帐户密码创建。

password是由password_hash使用bcrypt function生成的60个字符 salted 哈希。由于每次创建密码时都会随机生成salt,因此即使用户的明文密码完全相同,也会因用户而异。确实,this is the purpose of using a salt

如果您只是为了开发目的设置测试帐户,可以将secret_token留空,并使用password_hash生成密码(可能通过从命令行运行自定义PHP脚本)。

如果您需要为真实用户批量生成帐户,您可能需要设置secret_token但保留密码为空,为每个用户生成“密码重置”事件,然后向他们发送密码创建电子邮件,以便他们可以选择自己的密码。这实际上是在createUser控制器方法中完成的:

$data['password'] = "";

...

$user = new User($data);

...

$user->newEventPasswordReset();

您可以看到newEventPasswordReset here的代码。