问题描述
有一个使用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
},})
有人可以在这里为您提供指导,如何处理这种情况?
在此方面的任何帮助都将受到赞赏。
解决方法
您已经排除了错误的ui路由器状态配置,因为您可以通过浏览器地址栏成功访问该状态。
因此,您的重点应该是与第三方认证应用程序的接口。
使用浏览器的开发工具的“网络”选项卡,以根据3rd身份验证应用程序的要求,确认POST是否正确包含/格式化返回URL。
如果接口接线正确,请确认第三方身份验证应用程序正常运行。确认浏览器的地址栏是否响应第三方应用程序的重定向而更改。您可以通过运行FIDDLER来查看第三方应用返回到浏览器的内容,从而获得洞察力。
此外,您可以修改问题,以包含使POST进入第三方应用程序的代码块。
(注意:我没有足够的观点将此内容添加为评论)