Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码

Posted

技术标签:

【中文标题】Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码【英文标题】:Node.JS webapp: Authentication, Create Account, Forgot Password and Change Password 【发布时间】:2021-06-29 21:44:23 【问题描述】:

我想在node.js 中开发一个新的网络应用程序(使用express)。我对 node.js 世界比较陌生,所以我假设有些框架我不熟悉。

是否有任何框架(如用于 Java 的 Spring)来管理身份验证(并免去开发人员的麻烦)?还是每个开发者都要一遍遍地写这段代码?

登录/注销并不是全部。还有其他流程:

注册(创建帐户), 忘记密码(然后设置新密码), 锁定/解锁帐户, 更改密码

我想我已经涵盖了所有流程。

我知道每个应用程序都有自己的 UI、表单,也许还有它的徽标,但是对于大多数应用程序来说,流程本身是相似的。 此外,我知道实现起来并不难,但拥有某种工具/框架/基础设施来实现流程可能会很棒。

是否有这样的工具/框架可以帮助应用程序的开发人员并实现这些流程?

我已经搜索过这个问题,但找不到任何东西。

谢谢!

【问题讨论】:

【参考方案1】:

很久以前我在 Spring 上为 Java 开发了authentication-flows,最近我写了authentication-flows-js。

它是一个可以回答大多数流程的模块 - 身份验证、注册、忘记密码、更改密码等,并且它足够安全,因此应用程序可以使用它而不必担心它会被轻易入侵。

适用于使用 express 的 node.js 应用程序(用 TypeScript 编写)。它是一个开源(在 GitHub 中)。发布版本位于 npm,因此您可以将其用作 package.json 中的依赖项。

在它的 README 中(当然还有 npm 页面)对所有内容都有详细的解释,如果缺少某些内容 - 请告诉我。一篇文章将很快发布(我将添加一个链接作为评论)。

你可以找到here an example for a hosting application。

注意:我听说过诸如“实施起来并不难”之类的 cmets。真的。 但是您必须确保处理所有情况。例如, 如果用户尝试创建已经存在的帐户会发生什么? 如果用户尝试创建已经存在的帐户会发生什么 但不活跃?密码策略呢? (太长/太 短/多少资本等)如何发送电子邮件与 用户的激活链接?您如何创建此链接?你应该 加密吗?将收到点击的控制器怎么样 链接并激活帐户?还有更多...

【讨论】:

文章:ohad-redlich.medium.com/…

以上是关于Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 双重身份验证

Node.js 无法对 MySQL 8.0 进行身份验证

Node.js无法对MySQL 8.0进行身份验证

在 tomcat webapp 中设置身份验证的最佳方法是啥?

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

没有 Google 帐户的 Google Cloud Endpoints