【问题标题】:Password reset link gets redirected to swagger密码重置链接被重定向到招摇
【发布时间】:2021-11-17 09:27:00
【问题描述】:

当点击忘记密码邮件发送的密码重置链接时,它会被重定向到swagger api页面,而不是angular帐户模块的应用密码重置页面。我正在使用 ABP 版本 4.4.2.

日志:

[INF] Request starting HTTP/1.1 GET http://MyServer:MyApiPort/?userId=b7f3736f-08c2-bf57-a515-39fb28b41c19&__tenant=&resetToken=CfDJ8IxpuMPgrKNKjI1u2e2ZAtOOLUHe6OX2Ij5%2BH68fAkOeFPafRMUZ3I9OF%2Biqr3FoBEteth2P5NC6GQDWPjoI%2BZRv%2BjATH0b8vm2UC%2FIHrp%2B%2BIdER9tGBDySInA631AGxaO3HATlpBHdXsNSkfIenqHllxzEe4WeJlyqjem%2BJ8WcBC1c%2FYlxR7xxHDJDiyUyhkRy%2Bx6PMKddc5w2APu5p1f3JAfCzdbTBYJF4REQYAPCd - -
[INF] Executing endpoint 'MyAPP.Controllers.HomeController.Index (MyAPP.HttpApi.Host)'
[INF] Route matched with {action = "Index", controller = "Home", area = "", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult Index() on controller MyAPP.Controllers.HomeController (MyAPP.HttpApi.Host).
[INF] Executing RedirectResult, redirecting to /swagger.

应用设置:

"App": {
    "SelfUrl": "http://MyServer:MyApiPort",
    "CorsOrigins": "http://MyServer:MyAppPort",
    "RedirectAllowedUrls": "http://MyServer:MyAppPort"
  },

是否还有其他配置可以正确重定向?

非常感谢您的帮助

【问题讨论】:

    标签: abp


    【解决方案1】:

    首先,非常感谢您提供的信息。 我对这个主题进行了研究,我认为这是由于您提供的日志记录中没有returnUrl

    [INF]请求开始HTTP / 1.1 GET HTTP:// MyServer的:MyApiPort /用户id = b7f3736f-08c2-bf57-a515-39fb28b41c19&__租户=&resetToken = CfDJ8IxpuMPgrKNKjI1u2e2ZAtOOLUHe6OX2Ij5%2BH68fAkOeFPafRMUZ3I9OF%2Biqr3FoBEteth2P5NC6GQDWPjoI%2BZRv%2BjATH0b8vm2UC%2FIHrp%2B%2BIdER9tGBDySInA631AGxaO3HATlpBHdXsNSkfIenqHllxzEe4WeJlyqjem %2BJ8WcBC1c%2FYlxR7xxHDJDiyUyhkRy%2Bx6PMKddc5w2APu5p1f3JAfCzdbTBYJF4REQYAPCd - -

    这当然是很肤浅的解释,所以,我有几个问题想更清楚的理解问题:

    1. 你在本地运行时是否遇到同样的问题?
    2. 您的所有步骤。例如,以下是我用来更好地了解这种情况的步骤。

    我的步骤:

    1. 使用abp new Angular.SeperteadMongiLish -t app -u angular --mobile none --separate-identity-server --database-provider mongodb -csf --version 4.4.2 命令下载项目
    2. 我执行了运行应用程序的必要步骤
    3. 我在 Angular UI 中单击了登录。
    4. 我在这里查看了网址:
    https://localhost:44356/Account/Login?ReturnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fresponse_type%3Dcode%26client_id%3DSeperteadMongiLish_App%26state%3DRHNCSDFjanZHbHlJTmRRdWtMeG9qZktQODRNek5NOXpUTHN4TmZQUUJkTThz%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A4200%26scope%3Doffline_access%2520openid%2520profile%2520role%2520email%2520phone%2520SeperteadMongiLish%26code_challenge%3D3P4R2O-GJcOHPNBAySMMwYMKp9jeevEWT3SR-1x2FTA%26code_challenge_method%3DS256%26nonce%3DRHNCSDFjanZHbHlJTmRRdWtMeG9qZktQODRNek5NOXpUTHN4TmZQUUJkTThz%26culture%3Den%26ui-culture%3Den
    
    1. 在打开的登录屏幕上,我单击了Forgot Password? 按钮。

    【讨论】:

    • 感谢您的调查。我在本地尝试过,链接也没有returnURL 部分。我的应用程序实际上并不是从 4.​​4.2 开始的,它是从早期版本 3.* 和 4.2 开始开发的。我认为是 4.4,但当时没有激活密码重置,直到现在使用 4.4.2。所以也许这就是问题所在。我将在一个新项目中尝试它。这是本地链接:localhost:44318/…......
    • 如果您在ABP 4.*.* 版本中创建的项目中仍然存在此问题,请告诉我:)
    • 在一个新项目中它工作正常。与新项目相比,ConfigureUrls 中缺少两行代码:options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"]; options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password"; 今年早些时候推出的augular account 模块是我手动安装的,可能这部分代码尚未包含在安装包中然后。再次感谢您的提示。 :)
    • 嗨@berkansasmaz 我还有一个关于这个的问题。一切都在本地主机上完美运行,实际上也能够重置密码。在 IIS 上部署后,重置链接不断得到 404。这是有效的链接:http://localhost:4200/account/reset-password?userId=b7f3736f-08c2-bf57-a515-39fb28b41c19&__tenant=&resetToken=CfDJ8Bd71....,这是得到 404:http://MyServer:4200/account/reset-password?userId=b7f3736f-08c2-bf57-a515-39fb28b41c19&__tenant=&resetToken=CfDJ8OObj.... 你对此有什么建议吗?
    • 您的clientUrl 似乎从您的appsettings.json 文件中丢失,这可能与它有关。如果与此无关,如果您能指定相关的日志记录以及登录时是否出现问题,那就太好了。
    猜你喜欢
    • 2020-12-02
    • 1970-01-01
    • 2019-02-07
    • 2016-05-20
    • 2012-02-10
    • 1970-01-01
    • 2016-01-26
    • 2015-12-25
    • 2016-12-12
    相关资源
    最近更新 更多