我想添加一些测试用户帐户,直接从数据库中执行此操作要快得多。
有几个领域我无法弄清楚:
- secret_token:如何即时生成?有必要吗?我可以从其他帐户复制吗?
- 密码:即使我以正常方式(注册页面)创建了一些帐户,但使用相同的密码,每个用户的密码字段都不同。因此我认为这不是一个简单的复制/粘贴案例(问题也适用于从数据库更改用户密码)。
任何见解表示赞赏,谢谢。
我想添加一些测试用户帐户,直接从数据库中执行此操作要快得多。
有几个领域我无法弄清楚:
任何见解表示赞赏,谢谢。
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
此处查看代码。