2016-06-06 2 views
0

Je suis nouveau nodejs, Actuellement, j'utilise rest-client pour récupérer les données du service proxy. Initialement En utilisant la méthode de repos POST Client, je suis en mesure de me connecter à mon proxy et j'obtiens une réponse de succès.nodejs authentification client et extraction des données de session

immédiatement J'appelle la méthode 'get' (proxy/user/me) pour extraire les données de session, puis je suis confronté à un message d'échec de connexion, Comment puis-je vérifier chaque fois avant d'aller chercher d'autres données nodejs?

//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 = "[email protected]"; 
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); 
     }); 
    } 
}); 

Répondre

0

Vous aurez besoin d'emballer chaque méthode avec un certain type de vérificateur d'authentification. Quelque chose comme ceci-

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

function updateUserData() { 
    // Do stuff 
} 

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

Vous êtes cadre de repos peut soutenir quelque chose comme ça déjà.