OAuth:接收带有参数的回调作为 POST 数据

Posted

技术标签:

【中文标题】OAuth:接收带有参数的回调作为 POST 数据【英文标题】:OAuth: Receive callback with parameters as POST data 【发布时间】:2012-08-06 04:46:01 【问题描述】:

我是 OAuth 的新手,我正在使用 oauth2 library on Python 来完成我的工作。

目前,当我收到来自服务器的回调时,URL 中的参数为:

http://mydomain/?oauth_verifier=(SOME_DATA)&oauth_token=(SOME_DATA)&oauth_callback_confirmed=true

我想知道是否有可能指示服务器以某种方式 POST 这些参数(oauth_verifieroauth_tokenoauth_callback_confirmed)作为回调给我,而不是在 URL 中显示它们(作为 GET请求)?

谢谢!

【问题讨论】:

【参考方案1】:

不,不可能将回调参数编码为 POST 请求。 OAuth 1.0 Spec 表示提供商向回调 URL 发出 HTTP 重定向:

如果消费者在 oauth_callback 中提供了回调 URL(如 消费者将用户引导至服务提供商中所述), 服务提供者构造一个 HTTP GET 请求 URL,并重定向 使用以下参数访问该 URL 的用户网络浏览器:

由于 HTTP 重定向 can only be a GET, not a POST,您的回调只能包含 URL 中的参数。

【讨论】:

以上是关于OAuth:接收带有参数的回调作为 POST 数据的主要内容,如果未能解决你的问题,请参考以下文章

OAuth回调参数漏洞案例解析

是否可以使用接收数据作为参数的函数的闭包范围?

oauth2认证后返回#怎么获取accesstoken?

jQuery框架中$.ajax()的常用参数有哪些?写一个post请求并带有发送数据和返回数据的样例

带有错误回调函数的 Ajax 响应

企业微信授权oauth回调慢