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

Adding users directly from the database [UserFrosting 0.3.1]

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

有几个字段我搞不懂:

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

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

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

password 是由 password_hash using the bcrypt function. Since the salt is randomly generated each time a password is created, it will be different from user to user, even if their plaintext passwords are exactly the same. Indeed, this is the purpose of using a salt.

生成的 60 个字符 salted 哈希

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

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

$data['password'] = "";

...

$user = new User($data);

...

$user->newEventPasswordReset();

您可以查看 newEventPasswordReset here 的代码。