gpt4 book ai didi

c# - ASP.NET Core 无效密码重置 token

转载 作者:太空狗 更新时间:2023-10-29 21:21:16 26 4
gpt4 key购买 nike

我有两台服务器使用相同的 ASP.NET Core Identity 后端。我使用以下内容生成密码重置 token :

var token = await _userManager.GeneratePasswordResetTokenAsync(applicationUser);

我通过电子邮件链接发送此 token 。当用户单击该链接时,他们将被带到一个单独的站点,该站点应提供一个 UI 来更改密码。以下代码处理用户提交 token 和新密码的密码:

var identityResult = await _userManager.ResetPasswordAsync(applicationUser, code, password);

在第二台服务器上,身份结果总是返回false,因为“invalid token”。

查看源代码,我看到 token 是使用 IP 地址生成的(因此我明白了 token 验证失败的原因)。

我的问题是如何在不同机器上成功创建/验证 token ?在以前的 ASP.NET 形式中,我可能会使用共享计算 secret 钥来防止出现这些情况。 ASP.NET Core 似乎没有类似的概念。从我读到的内容来看,这似乎是一个使用 DataProtection API 的场景。遗憾的是,我还没有看到任何有关如何将其应用于生成重置 token 的示例。

最佳答案

您是否尝试过在两个应用程序中将应用程序名称设置为相同的值?

services.AddDataProtection().SetApplicationName("same for both apps");

https://learn.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview

P.S - 我正在努力解决完全相同的问题。

关于c# - ASP.NET Core 无效密码重置 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43242179/

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