帐户激活和密码重置令牌
Account activation and password reset tokens
我一直在使用 VirtoCommerce 1.13,我希望注册用户收到一封电子邮件以确认他们的帐户。为此,我激活了正确的 属性 并且电子邮件确实已发送以及所有内容,尽管 URL 的令牌部分格式不正确。
我通过使用 HttpUtility.Encode 和 .Decode 解决了这个问题,这样我就可以在新用户访问 link 时发送正确的令牌并正确解码它。到目前为止,除了大多数情况下,新用户一切正常,尝试恢复密码的用户将遇到“密码重置失败。令牌无效或过期。请再次尝试重置_密码 ”。
令牌是 encoded/decoded 与注册过程中的方式相同。有时它确实有效,但我不知道为什么或如何复制它。
有什么提示吗?谢谢。
编辑:进一步调试后,由于 "Invalid token." 错误,ResetPasswordWithTokenAsync returns 错误,但令牌本身没有显示任何无效迹象。
我发现了错误,当在密码重置时使用令牌的解码功能时,令牌最终被解码了两次,这意味着它从 URL 编码格式,到文本,到再次输入文本,但有一些小的变化,其中之一是“+”被转换为空格,这意味着标记不匹配。
编辑:更改此行为后,令牌最终被编码两次,仅解码一次,这意味着恢复我放入其中的解码会使情况变得更糟。
为了解决这个问题,显然不需要像注册过程中那样对用于密码恢复的令牌进行编码或解码。
我一直在使用 VirtoCommerce 1.13,我希望注册用户收到一封电子邮件以确认他们的帐户。为此,我激活了正确的 属性 并且电子邮件确实已发送以及所有内容,尽管 URL 的令牌部分格式不正确。 我通过使用 HttpUtility.Encode 和 .Decode 解决了这个问题,这样我就可以在新用户访问 link 时发送正确的令牌并正确解码它。到目前为止,除了大多数情况下,新用户一切正常,尝试恢复密码的用户将遇到“密码重置失败。令牌无效或过期。请再次尝试重置_密码 ”。 令牌是 encoded/decoded 与注册过程中的方式相同。有时它确实有效,但我不知道为什么或如何复制它。 有什么提示吗?谢谢。
编辑:进一步调试后,由于 "Invalid token." 错误,ResetPasswordWithTokenAsync returns 错误,但令牌本身没有显示任何无效迹象。
我发现了错误,当在密码重置时使用令牌的解码功能时,令牌最终被解码了两次,这意味着它从 URL 编码格式,到文本,到再次输入文本,但有一些小的变化,其中之一是“+”被转换为空格,这意味着标记不匹配。
编辑:更改此行为后,令牌最终被编码两次,仅解码一次,这意味着恢复我放入其中的解码会使情况变得更糟。 为了解决这个问题,显然不需要像注册过程中那样对用于密码恢复的令牌进行编码或解码。