ABP 4.4.2 密码重置链接跳转Swagger而非Angular重置页如何配置?
ABP 4.4.2 密码重置链接跳转错误解决方案
你遇到的跳转问题本质是默认邮件模板生成的重置链接指向了API服务域名,而API根路径默认逻辑就是重定向到Swagger页,按照以下步骤调整即可:
- 方案一:全局配置重置链接规则(推荐)
在HTTP API Host项目的模块类(通常命名为*HttpApiHostModule.cs)的ConfigureServices方法中,新增账户模块的重置链接格式配置:
Configure<AccountOptions>(options => { // 替换为你Angular端密码重置页面的实际访问地址,占位符保持不变即可 options.ResetPasswordUrlFormat = "http://MyServer:MyAppPort/account/reset-password?userId={userId}&tenantId={tenantId}&resetToken={resetToken}"; });
ABP会自动将{userId}、{tenantId}、{resetToken}占位符替换为实际参数值,你现有配置里的RedirectAllowedUrls已经添加了Angular端地址,这部分无需修改。
- 方案二:修改HomeController跳转逻辑
如果你不想修改全局的链接生成规则,也可以修改HomeController的Index方法,识别重置密码请求后跳转到前端页面:
public IActionResult Index() { // 判断是否为密码重置请求 if (Request.Query.ContainsKey("resetToken")) { var userId = Request.Query["userId"].ToString(); var tenantId = Request.Query["__tenant"].ToString(); var resetToken = Request.Query["resetToken"].ToString(); return Redirect($"http://MyServer:MyAppPort/account/reset-password?userId={userId}&tenantId={tenantId}&resetToken={resetToken}"); } // 其他请求依旧跳转Swagger return Redirect("/swagger"); }
以上任意一种方案修改完成后,重启API服务即可生效。
内容的提问来源于stack exchange,提问作者lukkr
相关产品推荐
相关产品推荐

