首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node.js的身份验证流程

使用node.js的身份验证流程
EN

Stack Overflow用户
提问于 2021-04-27 02:05:15
回答 1查看 36关注 0票数 1

我正在构建身份验证微服务,与电子邮件确认,问题是,在过去,我使用随机生成的字符串(crypto.randomBytes(20).toString('hex'))它工作得很好,直到它变得令人头疼,当gmail决定zoho电子邮件包含链接到我的网站(托管在亚马逊网络服务上,并逐字配置每一位(SPF,DKIM,在zoho说明中提到的一切),zoho建议,在Route53中)应该去垃圾邮件,这就是为什么我必须做紧急切换到代码身份验证,在那里我发送5-6位代码,用户必须确认,这是相当常见的,就像我在许多网站上看到的那样。(这就是我在这个微服务atm中使用的),我生成随机数,迭代用户,检查是否有任何用户使用该代码,如果有重复,但如果它超过配置文件(3)中定义的最大迭代次数,则中断循环,现在我看到的问题是,即使最大6位数字是999999,它可以成为问题,同时许多用户注册延迟验证+攻击者垃圾邮件用户代码,它可能很快就会成为问题,即使我有单独的微服务来清理过期的代码,它仍然可能是令人担忧的,如果用户多次遇到现有代码出现(UX问题),那么标准的解决方案是什么?我已经在谷歌上搜索过了,但没有发现什么特别的东西,而且大多数样板都是使用编码字符串。

EN

回答 1

Stack Overflow用户

发布于 2021-05-01 18:49:46

首先,您可以使用zoho以外的其他电子邮件提供商。例如,AFAIK mailgun,SMTP2GO和sendinblue不被谷歌识别为垃圾邮件。

其次,大多数网站不会同时向用户索要代码和电子邮件。因此,我不确定是否再次向用户索要他的电子邮件。我将搜索令牌(如您所描述的),但是一旦我找到它,我就会删除它,这样它就不会在将来与相同的生成的令牌冲突,并且确保这个令牌不会被多次使用。

只需确保将令牌也索引到您的数据库中,这样搜索就会是最佳的。

相反,如果您希望使用使用您提到的“样板”的包(但您不必对其进行编码,只需依赖于此包),则可以使用https://www.npmjs.com/package/authentication-flows-js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67271660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档