具有用户认证的Express-js样板

本文介绍了一个基于Express.js的用户身份验证系统,包括用户注册、登录、密码重置、会话管理和权限控制等功能。系统使用MySQL存储用户数据,并提供防止DOS攻击和XSRF保护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我找不到适用于Expressjs的完整用户身份验证系统,所以我写了这个。

对于不耐烦的人,代码位于Github

MySQL的

它使用MySql来存储用户数据,也用作会话存储。 我试图使代码灵活。 将MySql更改为其他内容很容易。
会话存储不需要使用相同的数据库系统。 我这样做只是为了简单起见。

组态

它使用.env文件进行应用程序的基本配置。 也就是说,仅编辑.env即可启动并运行应用程序。

此外,/ config目录中还有一些可配置的参数。

“记住我” cookie的持续时间。

会话存储,会话持续时间。

电子邮件发送配置。

认证方式

认证系统包括:

1.用户注册,基于护照登录。

2.忘记了-重置密码功能。

默认情况下,重置密码代码的有效期为1小时。 可配置的。

3.“记住我” cookie。

默认情况下有效期为360天。 可配置的。

4.两个用户级别,普通和管理员。 不可配置。

通过一些编码,可以轻松扩展到更多级别。

5.对DOS攻击的节流保护。 可配置的。

默认情况下,每两秒钟允许两个请求。

6. Xsrf保护。

接口

该界面摘自Brad Traversy的演示文稿 。 我只更改了我必须要做的部分。

我相信,根据项目要求,很容易将接口切换为另一个接口。

注册

当用户在应用程序中注册后,如果数据库中没有其他用户,则他将成为管理员。

没有激活电子邮件。 注册后用户立即处于活动状态。 我没有包括激活步骤,因为并非所有项目都需要它。 如果有此要求,添加它非常容易。

无论如何,总有管理员来控制允许哪些用户,哪些不允许。

仪表板

有一个基本的管理员控制台,管理员可以在其中创建或取消其他管理员。

管理员可以激活,停用其他用户。 没有用户删除,只有停用。

记住账号

“记住我” cookie不包含用户ID,但包含UUID,该UUID不包含对攻击者有用的信息。 这是在“用户”数据库表中包括UUID的唯一原因。

Cookie的内容是UUID和“记住我”令牌。 “记住我”令牌哈希存储在数据库中。 令牌已验证
作为密码。

“记住我” cookie值和“忘记密码”键被视为密码,因为它们实际上等同于密码。

依存关系

我试图将依赖项的数量保持在尽可能低的水平,以便不限制开发人员选择主项目的程序包。

From: https://hackernoon.com/express-js-boilerplate-with-user-authentication-ch5032a3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值