使用Doorkeeper的OAuth回调URL参数

时间:2012-10-23 13:57:27

标签: ruby-on-rails rest oauth oauth-2.0

我正在使用带门卫的OAuth2来保护我的API。

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

他希望在将用户重定向到我的OAuth流时动态添加一些参数,并在我调用其回调网址时重新获取这些参数。通过这种方式,他将能够判断这个回调来自哪个流程。

OAuth 2可以实现吗?有门卫?怎么样?

修改

感谢ZólyomiIstván的提示。 我在调用auth端点之前设置了state参数,并在回调中将其恢复。但是,我发现即使我没有设置任何内容,我也会使用一些明显随机的字符串返回状态参数。知道它是什么?我想确定我没有弄乱任何东西......

1 个答案:

答案 0 :(得分:3)

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

  

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

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