2017-07-21 70 views
0

我正在使用Node的RESTFUL API。以下是应该发生:发送标头中的Cookie时发送节点HTTP超时(请求/重置器)

  1. 网页发送REST请求通过SSL节点服务器(此请求包括一个cookie:我们将用它来验证ci_session)
  2. 节点服务器会允许代码请求的动作(每个资源都有它自己的代码)
  3. 发送一个RESTful请求PHP服务器使用步骤1中的Cookie,并从步骤2
  4. PHP服务器成功响应权限管理程序代码来验证/失败
  5. 如果成功返回,然后让节点执行请求的re来自步骤1的源
  6. 页获得的响应

我的问题是,在步骤#3。

//Using 'Restler'(which is built on 'Request') 
var rest = require("restler"); 

//Authenticate 
//This is Hanging 
rest.get('URL_TO_PHP_REST', { headers:{ 
             "Cookie": v_cookie 
            } 
           } 
).on("success", function(){...}); 

调试:

  • 我测试过所有与邮差我的REST风格的终点;他们工作。
  • 如果我省略步骤#3的cookie,那么该请求经过瞬间(虽然用户总是会失败的身份验证检查)
  • Cookies和URL是他们的预期值

样品饼干

ac=0atu2rrp5ifeet0s5kdb62rbeov7ktnr

如何Restler发送请求

//Parameters 
//url = 'URL_TO_PHP_REST' 
//options = {headers:{"Cookie":"ac=0atu2rrp5ifeet0s5kdb62rbeov7ktnr"}} 

var request = new Request(url, options); 
request.on('error', function() {}); 
process.nextTick(request.run.bind(request)); 
return request; 
+1

,工程确切邮差命令行是什么? – jfriend00

+0

我解决了这个问题(见下文)。但是谢谢你提供的帮助。 –

回答

0

原来,问题是不是与我的REST服务,而是我的PHP服务器。相同的PHP服务器都从Node.js请求数据并验证请求。但是,PHP无法并行处理同一个会话。

解决方案:

  • 添加session_write_close()在请求脚本清除锁,以便验证可以运行。使用不同的服务器/语言
  • 请求的资源(即使用节点前端,而不是PHP)
相关问题