2

我想添加一些测试用户帐户,直接从数据库中执行此操作要快得多。

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

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

任何见解表示赞赏,谢谢。

4

1 回答 1

1

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

password是使用bcrypt 函数生成的 60 个字符的加盐哈希。由于每次创建密码时盐都是随机生成的,因此即使他们的明文密码完全相同,它也会因用户而异。确实,这就是使用 salt 的目的password_hash

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

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

$data['password'] = "";

...

$user = new User($data);

...

$user->newEventPasswordReset();

您可以在newEventPasswordReset 此处查看代码。

于 2016-09-09T18:19:59.710 回答