2

我正在使用 OAuth2 和 Doorkeeper 来保护我的 API。

问题是一个客户有几个不同的流程,他将用户重定向到我的 OAuth 流程。

他想在将用户重定向到我的 OAuth 流时动态添加一些参数,并在我调用他的回调 URL 时取回这些参数。通过这种方式,他将能够判断此回调源自哪个流。

OAuth 2可以做到这一点吗?与门卫?如何?

编辑:

感谢 Zólyomi István 的提示。我在调用 auth 端点之前设置了 state 参数,并在回调中取回了它。但是,我发现即使我没有设置任何内容,我也会返回带有一些明显随机字符串的状态参数。知道它是什么吗?我想确保我没有搞砸任何事情......

4

1 回答 1

3

好吧,使用状态参数确实是解决方案。只需将状态添加到请求中,然后在控件返回到我的代码时将其取回。根据规范:

state 参数用于链接请求和回调以防止 CSRF 攻击,其中攻击者授权访问他自己的资源,然后诱使用户使用攻击者的令牌跟随 edirect。

显然 ominauth oauth 2 会为该参数分配随机值,除非它用于检测 CSRF 攻击。

于 2012-11-08T09:33:29.770 回答