用户帐户激活、电子邮件确认和使用 Passport / Node.Js 的邀请

Posted

技术标签:

【中文标题】用户帐户激活、电子邮件确认和使用 Passport / Node.Js 的邀请【英文标题】:User account activation, e-mail confirmation, and invitations with Passport / Node.Js 【发布时间】:2014-04-16 17:56:46 【问题描述】:

我想为在 Passport / Neo4J 上运行的用户身份验证系统设置 3 件事:

1) 手动激活用户帐户(以便管理员执行);

2) 仅限邀请帐户创建;

3) 激活前邮箱确认账号;

我想知道您是否知道任何易于使用的 Passport 插件(我自己没有找到,但也希望得到您的建议)以及 - 实现它的最佳方式是什么(也许您'已经完成/看过了,所以你可以分享代码吗?)

谢谢!

【问题讨论】:

你用的是什么数据库? 发现这个问题正在寻找完全相同的东西。 @Alex Neo4J 图数据库 好的,因为你使用的是 Neo4J,所以并不相关,但在我的应用程序(我使用猫鼬)中,我使用了这个,发现它非常有用 npmjs.org/package/mongoose-email-address-manager 我最近使用 Mongoose 为客户做了这件事,并等待获得开源它的许可。我相信它会有一些用处,我稍后会更新。 【参考方案1】:

披露:我从未使用过 Neo4j,所以我不知道具体细节,但我会通过以下方式完成:

您可以编写一些简单的查询,在注册时将用户信息(例如用户名、密码、电子邮件等)插入您的数据库。然后,使用类似nodemailer 的方式向用户发送一封电子邮件,其中说明他已注册并正在等待确认。

在您存储的用户信息中,您应该有一列用于存储帐户状态(已验证或未验证)。然后,您可以编写一个小网页,用于从您的数据库中检索所有帐户verified=false,并通过将verified 设置为true 来确认您想要的那些,之后用户将收到一封电子邮件,用户告诉他他现在可以使用您的服务了。

至于仅限邀请的注册,我将有一个带有“注册码”的特殊表格,当用户邀请某人时,该表格将生成并插入到该表格中。被邀请的人会收到一个包含代码的链接,点击它后服务器会检查数据库中是否存在代码,如果存在则允许用户创建一个帐户。

我知道这是一个广泛的答案,但有很多方法可以完成您正在寻找的!

【讨论】:

【参考方案2】:

有人尝试使用 Drawbridge,但构建失败...https://www.npmjs.org/package/drawbridge

我正在寻找同样的东西。

【讨论】:

最后我手动实现了护照。查看github.com/noduslabs/infranodus

以上是关于用户帐户激活、电子邮件确认和使用 Passport / Node.Js 的邀请的主要内容,如果未能解决你的问题,请参考以下文章

在 Drupal 中,如何在没有管理员批准和用户设置密码的情况下激活电子邮件帐户?

删除用于确认用户电子邮件的 Joomla 激活电子邮件... LOCALHOST

使用 Laravel 3 通过电子邮件激活帐户

passport.js 中的多个模型

电子邮件确认码的最佳做法

如何配置 passport-github 以在回调时确认用户?