我有一个基本的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再次显示登录屏幕,无限循环。如果他们输入了错误的密码,他们会收到标准错误告诉他们
有什么想法吗?也许电子邮件验证的帐户没有正确初始化? Stormpath 提供的路线(如“/me”)的行为也是相同的,所以我不认为这是我的路线。当我打开和关闭电子邮件验证时,/myaccount 会继续为非电子邮件验证的用户工作,并且对于电子邮件验证的用户总是以这种方式中断
最佳答案
这是stormpath仪表板上“链接基本URL”的配置问题
它默认为“https://api.stormpath.com/emailVerificationTokens” ',它验证用户 - 尽管他们实际上无法登录
相反,将“链接基本 URL”更改为 http://localhost:3000/verify
请注意,该链接已完全过时,尽管只有 3 个月的历史... https://stormpath.com/blog/how-to-add-billing-to-your-api/不要费心尝试使用/verified
关于javascript - Express-stormpath 登录不适用于经过电子邮件身份验证的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33305614/