Express-stormpath登录不适用于通过电子邮件认证的用户

express-stormpath login not working for email-authenticated users

本文关键字:电子邮件 认证 用户 登录 不适用 适用于 Express-stormpath      更新时间:2023-09-26

我有一个基本的node.js/Express服务器使用Express -stormpath进行用户身份验证。没有电子邮件验证,一切都运行得很好。显然,由于许多原因,需要进行电子邮件验证,但是经过电子邮件验证的用户无法在受限制的路由上使用标准登录流程。

自定义路由的具体示例如下:

app.get('/myaccount', stormpath.loginRequired, function(req, 
res.send('Your email address is: ' + req.user.email);});

此路由适用于在电子邮件验证之前注册的用户。

然而,

它坏了为用户注册验证邮件之后。这些用户收到一封电子邮件,点击链接,进入确认屏幕("您的帐户已成功验证,可以使用"),并在我的Stormpath仪表板上被标记为"启用"。

特别是

,如果他们输入了正确的密码,他们将再次被发送到http://glacial-hollows-8156.herokuapp.com/login?next=%2Fmyaccount,这将再次显示登录屏幕,直到无限。如果他们输入了一个不正确的密码,他们会得到一个标准错误,告诉他们so

任何想法?也许email-verified账户没有被正确地初始化?对于stormpath提供的路由,比如"/me",行为也是一样的,所以我不认为这是我的路由。当我打开和关闭电子邮件验证时,/myaccount继续为非电子邮件验证的用户工作,并且总是以这种方式为电子邮件验证的用户中断

这是stormpath仪表板上'Link Base URL'的配置问题

默认为'https://api.stormpath.com/emailVerificationTokens',用于验证用户-尽管他们不能实际登录

将'Link Base URL'改为http://localhost:3000/verify

请注意,这个链接是完全过时的,尽管只有3个月的时间…https://stormpath.com/blog/how-to-add-billing-to-your-api/不要尝试使用/verified