我对这个问题进行了大量研究但没有取得任何成功。
twitter使用的oauth系统假设您有一个可以存储身份验证密钥的应用程序,我的情况则不同。我有一个应用程序位于防火墙后面,可以获取所需的令牌,但由于防火墙规则,回调无法通过应用程序。
我曾尝试更改防火墙规则,但负责服务器的人员不惜任何代价拒绝这样做,他们也拒绝允许网站对应用程序的唯一共享点 - 数据库 - 进行任何写访问。
网站的公共区域无法将信息反馈给内部网站管理区域,这是一种单向交易:
webadmin - >防火墙 - > (rw)数据库(ro) - >防火墙 - >网站 - >防火墙
我需要授权webadmin允许它发布到Twitter。
我可以获得临时身份验证密钥并可以重定向到Twitter,但是带有最终授权密钥的Twitter回调只能到达面向公众的网站(10个物理服务器),这些网站无法与webadmin交谈,所以我可以永远不会完成oauth的循环。
我已尝试保存到文件并复制/粘贴授权代码,但出于某种原因,如果以这种方式复制oauth密钥,它会阻止所做的任何推文。
我已经变灰了,现在正试图让这个简单的变化到位,
请帮忙。
答案 0 :(得分:0)
Twitter在特殊请求中支持xAuth,这不需要那种回调,并且可能只适用于您的防火墙。您基本上只需要说明为什么需要使用xAuth而不是OAuth,然后使用稍微不同的请求结构。
答案 1 :(得分:0)
只要添加Twitter帐户的用户可以在浏览器中访问webadmin并且webadmin存储某种临时会话,以便知道当前正在访问的用户,您不需要使用防火墙,也不需要来自Twitter或防火墙外部需要连接到您的网络。
其工作原理如下:1)用户访问webadmin并生成请求令牌。请求令牌临时存储在会话中。 2)用户被授权访问的请求令牌的公共一半被重定向到twitter.com。 3)用户被重定向到他们可以访问的webadmin,因为他们是防火墙内的用户。 4)请求令牌不能交换永久保存的访问令牌,并用作与用户交互的Twitter API。