node.js - Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码
问题描述
我想在node.js中开发一个新的网络应用程序(使用express)。我对 node.js 世界比较陌生,所以我假设有些框架我不熟悉。
是否有任何框架(如Spring for Java)来管理身份验证(并免去开发人员的麻烦)?还是每个开发人员都必须一遍又一遍地编写这段代码?
登录/注销不是全部。还有其他流程:
- 注册(创建帐户),
- 忘记密码(然后设置新密码),
- 锁定/解锁帐户,
- 更改密码
我想我已经涵盖了所有流程。
我知道每个应用程序都有自己的 UI、表单,也许还有它的徽标,但对于大多数应用程序来说,流程本身是相似的。此外,我知道实现起来并不难,但是拥有某种实现流程的工具/框架/基础设施可能会很棒。
是否有这样的工具/框架可以帮助应用程序的开发人员并实现这些流程?
我已经搜索了这个问题,但找不到任何东西。
谢谢!
解决方案
很久以前,我在 Spring 上为 Java 开发了身份验证流,最近我编写了authentication-flows-js。
它是一个可以回答大多数流程的模块 - 身份验证、注册、忘记密码、更改密码等,并且它足够安全,因此应用程序可以使用它而不必担心它会被轻易入侵。
它适用于使用 express 的 node.js 应用程序(用 TypeScript 编写)。它是开源的(在 GitHub 中)。发布版本位于npm上,因此您可以将其用作package.json
.
在它的 README 中(当然还有 npm 页面)对所有内容都有详细的解释,如果有什么遗漏 - 请告诉我。一篇文章将很快发表(我将添加一个链接作为评论)。
您可以在此处找到托管应用程序的示例。
注意:我听说过诸如“实施起来并不难”之类的评论。真的。但是您必须确保处理所有情况。例如,如果用户尝试创建已经存在的帐户会发生什么?如果用户尝试创建已经存在但不活动的帐户会发生什么?密码策略呢?(太长/太短/多少资本等)如何将带有激活链接的电子邮件发送给用户?您如何创建此链接?你应该加密它吗?将收到点击链接并激活帐户的控制器呢?和更多...
推荐阅读
- sql-server - JPA/Wildfly/MsSql:GenericJDBCException:无法获取 JDBC 连接
- python - 根据 NetworkX 中的权重改变边缘的厚度
- azure-machine-learning-service - 从 Azure ML 连接到现有的 Azure 容器实例 ACI
- c++ - 这是我的 .h 文件。我更改了 .h 文件名,但仍然产生相同的错误。“时间类”中的“时间显示”
- python - Plotly Dash 应用程序在动态生成组件时似乎没有更新 app.layout 属性
- javascript - TypeError:无法定义属性“当前”:对象不可扩展
- ios - systemLayoutSizeFitting 没有返回正确的视图大小
- reactjs - React js和apexcharts Unhandled Rejection TypeError无法读取未定义的属性“长度”
- javascript - 以编程方式删除空行
- node.js - TS2749:'Schema' 指的是一个值,但在使用 TypeScript 定义 Mongoose 模型时在这里用作类型