gpt4 book ai didi

asp.net-mvc - 如何在 Asp.Net Core MVC 中重置密码之前验证用户 token 是否有效?

转载 作者:行者123 更新时间:2023-12-02 14:48:00 33 4
gpt4 key购买 nike

我正在为我的应用程序使用 Asp.net 核心 MVC,并且我实现了重置密码功能并且工作正常。让我展示一下它是如何实现的。当用户请求重置密码时,应用程序会创建一个 token ,如下所示:

var token = _userManager.GeneratePasswordResetToken(user);

应用程序向用户发送一封电子邮件,当用户点击链接时,它会出现在用户重置密码的页面上。我正在重置如下:

ChangePasswordAsync(user, token, password);

它工作正常。但我想在更改密码之前验证 token 是否有效。有什么办法吗?

最佳答案

UserManager 有一个公共(public)方法,VerifyUserTokenAsync,这很可能就是您想要的。如果查看源代码here ,您将看到它是如何在 ResetPasswordAsync 中使用的:

VerifyUserTokenAsync(user, Options.Tokens.PasswordResetTokenProvider, ResetPasswordTokenPurpose, token)

因此,它依赖于一个神奇的字符串,但您应该能够使用相同的值来获得真值或假值,例如:

if(await _userManager.VerifyUserTokenAsync(user, _userManager.Options.Tokens.PasswordResetTokenProvider, "ResetPassword", token))
{
await _userManager.ResetPasswordAsync(user, token, password);
}
else
{
// handle a bad token however you see fit...
}

这未经测试,所以我不能保证它按原样工作。

关于asp.net-mvc - 如何在 Asp.Net Core MVC 中重置密码之前验证用户 token 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721207/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com