帐户激活和密码重置令牌

时间:2015-03-30 14:17:18

标签: e-commerce virtocommerce

我一直在使用VirtoCommerce 1.13,我希望注册用户收到电子邮件以确认他们的帐户。为此,我已经激活了正确的属性,并且电子邮件确实已发送和所有内容,尽管URL的令牌部分未正确格式化。 我通过使用HttpUtility.Encode和.Decode解决了这个问题,因此我可以发送正确的令牌,并在新用户访问该链接时正确解码。到目前为止,一切都适用于新用户,除了大多数时间,尝试恢复密码的用户将被“密码重置失败。无效或过期的令牌。请尝试重新设置_password ”。 令牌以与注册表进程中相同的方式进行编码/解码。有时它确实有效,我不知道为什么或如何复制它。 任何提示?谢谢。

编辑:进一步调试后,由于“无效令牌”,ResetPasswordWithTokenAsync返回false。错误,但令牌本身没有显示任何无效的迹象。

1 个答案:

答案 0 :(得分:1)

我发现错误,在密码重置时使用令牌的解码功能时,令牌最终被解码两次,这意味着它从URL编码格式再到文本再到文本但是变化很小,其中一个被'+'转换成白色空格,这意味着令牌不匹配。

编辑:更改此行为后,令牌最终被编码两次并仅解码一次,这意味着恢复我放入的解码使其更糟糕。 为了解决这个问题,显然密码恢复的令牌不需要像注册过程那样进行编码或解码。