将 FlowRouter 与 onResetPasswordLink、onEnrollmentLink 和 onEmailVerificationLink 一起使用

Using FlowRouter with onResetPasswordLink, onEnrollmentLink and onEmailVerificationLink

我不情愿地实施自己的用户帐户系统,因为 Meteor 使用 bcrypt 来存储加密密码,而我的 Dovecot/Postfix 电子邮件系统 运行 在 Ubuntu 实例使用 SHA512。 Debian/Ubuntu 的人选择不在他们的 Linux 发行版中实现 bcrypt,这使得这个相当痛苦的练习成为必要。这需要我在我自己的用户帐户中获取未加密的密码,以生成并保存一个 SHA512 版本,我随后使用该版本为我的成员提供电子邮件服务。

我实施了下面@bgmaster 和@stubailo 提供的解决方案,但它似乎不适用于 FlowRouter。正如@bgmaster 指出的那样,他无法让它与 iron:router 一起工作。在我的例子中,onEnrollmentLink 回调显然从未被触发,因为 FlowRouter 在函数执行之前获得了控制权。如果我删除 'enroll-account/token' 路由,FlowRouter 会抱怨没有路由。

在我删除 FlowRouter 之前,有没有人能够使用核心 Meteor 帐户和 FlowRouter 实现自己的用户帐户系统?更好的是,有没有办法在标准帐户工作流程中获取未加密的密码?我更愿意使用内置的 'accounts-ui' 包甚至 'useraccounts'.

谢谢!

您必须自己滚动 UI 然后使用 Accounts.createUser()

我强烈建议您在调用 Accounts.createUser() 之前 在客户端上计算 SHA512 散列,然后 Accounts.createUser() 并将散列作为 profile 对象的一部分传递,这样它最终会与帐户一起保存。

电子邮件验证 link 应该无关紧要,因为此时不会捕获密码,但您还需要创建自己的密码 reset UI.