如何将数据从登录页面传递到OAuth 2.0,然后将其恢复?

时间:2016-10-24 08:23:36

标签: angularjs oauth oauth-2.0

我正在为我的AngularJS应用程序使用OAuth 2.0。当用户点击其他应用程序之一时,我将使用以下参数重定向到我的Angular应用程序:

https://stic-scm-auto.snitco.com/fsHardSoft/createCase?sn=FOC0948Y1WB 

当访问上面的URL时,我向他们显示登录页面。 (因为他们还没有登录)

后来我将它们重定向到这里:

https://cloudsso-test.snitco.com/as/

他们降落后,我正被重新定向到登录网址:

https://sso-test.snitco.com/autho/forms/CDClogin.html

登录成功后,它会重定向回我应用程序的OAuth回调页面。

如何将createCase?sn=FOC0948Y1WB - 参数传递给所有上述网关并获取数据?

1 个答案:

答案 0 :(得分:1)

您可以依靠OAuth 2.0 state参数来实现此目的。在 OAuth 2.0兼容服务器中,您在此参数中发送的值将在流程完成后返回给您,授权服务器会重定向回您的应用程序。

此参数的主要用例是通过将原始请求链接到重定向请求来阻止XSRF,以便客户端应用程序确保重定向不是由攻击者引起的。

但是,也可以使用此参数来实现按请求定制,在您的情况下,您将知道原始案例编号。有关详细信息,请参阅Using the State Parameter。只要确保在状态中传递的值仍然应该有一个随机组件,以后可以检查以防止XSRF;您需要的自定义数据应该是此nonce值的补充。