gpt4 book ai didi

php - 在 ZF2 中使用 ZfcUser 生成用户帐户

转载 作者:可可西里 更新时间:2023-11-01 00:14:54 25 4
gpt4 key购买 nike

我想在 Zend Framework 2 中使用 ZfcUser 生成用户帐户任意地,我可以通过激活链接或一些临时凭证通过电子邮件发送给用户。我不确定是否可以扩展 ZfcUser 以安全地执行此操作,因此我正在寻求帮助和建议。

我需要在申请推荐信功能时这样做。它由现有用户(以“正常”方式使用 ZfcUser 注册的人)通过提供某人的电子邮件地址来请求某人的推荐信来工作。那时我想使用 ZfcUser 和给定的电子邮件生成一个帐户,并通知该人有人向他们索取推荐信,他们应该登录并完成它。

虽然我为每个信件请求提供了一个一次性链接,但我觉得为每个电子邮件和相关用户创建一个帐户更有意义,这样收到多个信件请求的人可以登录并在一个地方呈现他们的所有请求。我还认为将这些类型的用户帐户分离到我的数据库中的不同用户表中可能是明智的,或者至少将标志字段附加到我当前的用户表模式中。

我应该指出,我目前还结合使用 CdliTwoStageSignup 和 ZfcUser。我也不一定需要为此使用它,但它在工具包中。

我认为 ZfcUser 'state' flag在这里可能会有用,但这并不是我要完成的真正困难的部分。

我还在 ZfcUser wiki 中找到了关于如何执行此操作的另一条线索。在 Github 上。

我正在寻求技术帮助以使用 ZfcUser 完成此任务,但我绝对愿意接受设计想法或总体改进。

最佳答案

如果有人正在寻找如何创建一个可以使用 ZfcUser 进行身份验证的通用用户,那么只需创建一个新用户,使用 $bcrypt 将明文密码转换为散列并将其全部保存到您的用户表中即可。基础知识概述如下:

$newUser = new User();
$newUser->user_id = 'newUserId';
$newUser->email = 'newUser@gmail.com';
$password = 'newUserPassword'//This is extremely bad form, don't do it. You don't want any passwords hanging out in plaintext.

$bcrypt = new Bcrypt();
$bcrypt->setCost(14);
$newUser->password = $bcrypt->create($password);
$userTable->saveUser($newUser);

我在这里使用的 Bcrypt 成本是 14。您可以使用适合您的应用程序的任何值,但最好从 ZfcUser 配置文件中提取您的设置。您也可以使用不同的值,Bcrypt 会毫无问题地处理它。

我不建议像我在示例中那样在您的代码中以明文形式创建帐户和密码。您通常会在不存储的情况下立即获取用户输入并对其进行哈希处理。

为简洁起见,我省略了一些重要的部分,如用户状态和选项,如用户名和显示名称。如果您也在使用 BjyAuthorize,请不要忘记用户角色。

关于php - 在 ZF2 中使用 ZfcUser 生成用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com