nodejs restclient身份验证和获取会话数据

时间:2016-06-06 17:43:14

标签: node.js authentication rest-client

我是新的nodejs,目前我正在使用rest-client从代理服务获取数据。最初通过使用休眠客户端的POST方法,我能够登录我的代理,我得到了成功的响应。

登录后立即我调用'get'(代理/用户/我)方法来获取会话数据,然后我面临登录失败消息,我怎样才能在每次使用nodejs获取任何其他数据之前进行检查。 / p>

//Example POST method invocation for Login
//after Login get method invocation

var Client = require('node-rest-client').Client;
var client = new Client();
var fs = require('fs');
var email = "raj@ioynx.io";
var proxy = "http://google.com";
var password = "abcd";
// set content-type header and data as json in args parameter
var args = {
    data: JSON.stringify({ username: email, password: password }),
    headers: { "Content-Type": "application/json" }
};

client.post(proxy+"login", args, function (data, response) {
    //Sucessfully Login message Dis[play with status Code 200
    console.log(response.statusCode);
    if (parseInt(response.statusCode) === 200) {
       //after success I am trying to fetch session Data, 'get' mehode will always shows ,there is no login.
        client.get(proxy+"user/me", function (sessionData, sessionResponse) {
            //The second URL for fetching session data always shows { message:  "not Login message" }       
            console.log(sessionData, 'Dubt', sessionResponse.statusCode);
        });
    }
});

1 个答案:

答案 0 :(得分:0)

您需要使用某种身份验证检查程序包装每个方法。像这样的东西 -

function wrapAuthentication(fn) {
  return function() {
    // Check authentication
    if(authenticated) {
      fn.apply(fn, arguments);
    }
  }
}

function updateUserData() {
  // Do stuff 
}

client.post(proxy+"login", args, wrapAuthentication(updateUserData));

你休息框架可能已经支持这样的事情。