"Invalid token." 在 ASP.NET Web API 中验证 UserManager 的 ResetPassport 和 ConfirmEmail 方法期间
"Invalid token." during Verifying ResetPassport and ConfirmEmail Methods of UserManager in ASP.NET Web API
我制作了获取重置令牌并在单一路线中重置护照的方法,它适用于单一路线,如下所示:
[HttpGet("ResetPassword")]
[AllowAnonymous]
public async Task<IActionResult> ResetPassword(string userId)
{
var Password = "Random@123";
var user = await _userManager.FindByIdAsync(userId);
var token = await _userManager.GeneratePasswordResetTokenAsync(user);
var resetStatus = await _userManager.ResetPasswordAsync(user, token, Password);
}
但是如果我将 GeneratePasswordResetTokenAsync 和 ResetPasswordAsync 分开到不同的路由中,我会收到无效令牌的错误 我尝试使用 URL 编码和所有其他可用的解决方案,但它没有用 我还实现了自定义令牌处理程序正如 Custom Token Handler 所建议的那样。但是得到同样的错误。
我解决了。
是数据库造成的。我用一个新的数据库和一个新的迁移脚本配置了它,它现在可以工作了。
我制作了获取重置令牌并在单一路线中重置护照的方法,它适用于单一路线,如下所示:
[HttpGet("ResetPassword")]
[AllowAnonymous]
public async Task<IActionResult> ResetPassword(string userId)
{
var Password = "Random@123";
var user = await _userManager.FindByIdAsync(userId);
var token = await _userManager.GeneratePasswordResetTokenAsync(user);
var resetStatus = await _userManager.ResetPasswordAsync(user, token, Password);
}
但是如果我将 GeneratePasswordResetTokenAsync 和 ResetPasswordAsync 分开到不同的路由中,我会收到无效令牌的错误 我尝试使用 URL 编码和所有其他可用的解决方案,但它没有用 我还实现了自定义令牌处理程序正如 Custom Token Handler 所建议的那样。但是得到同样的错误。
我解决了。 是数据库造成的。我用一个新的数据库和一个新的迁移脚本配置了它,它现在可以工作了。