使用ui.router

问题描述

一个使用angularjs开发的前端应用程序,该应用程序使用ui.router来管理前端应用程序中的路由功能用户打开URL(https://www.testsite.com),然后单击登录按钮,该登录按钮将其重定向到另一个URL为https://www.testauthentication.com/sign的应用程序(身份验证应用程序)。成功登录后,身份验证提供程序通过在回调URL(https://www.testsite.com/account/processing)上发送POST请求来发回用户

一个为回调URL(https://www.testsite.com/account/processing)配置的路由,如下所示,但以下路由永远不会触发。但是,当我尝试通过浏览器打开相同的回调URL时,它可以工作。在这种情况下,它表明HTTP方法是GET。

router.js:

.state("account.processingauth",{
  url: "/processing?uid&uidSignature&signatureTimestamp&state",templateUrl: "/modules/account/processing/processing.html",controller: "ProcessingCtrl",resolve: {
    /////Code to handle the resole methods
  },})

enter image description here

有人可以在这里为您提供指导,如何处理这种情况?

在此方面的任何帮助都将受到赞赏。

解决方法

您已经排除了错误的ui路由器状态配置,因为您可以通过浏览器地址栏成功访问该状态。

因此,您的重点应该是与第三方认证应用程序的接口。

使用浏览器的开发工具的“网络”选项卡,以根据3rd身份验证应用程序的要求,确认POST是否正确包含/格式化返回URL。

如果接口接线正确,请确认第三方身份验证应用程序正常运行。确认浏览器的地址栏是否响应第三方应用程序的重定向而更改。您可以通过运行FIDDLER来查看第三方应用返回到浏览器的内容,从而获得洞察力。

此外,您可以修改问题,以包含使POST进入第三方应用程序的代码块。

(注意:我没有足够的观点将此内容添加为评论)