2017-09-22 4 views
0

Je crée un site Web (appelé webA) en utilisant nodejs. Je veux être en mesure de me connecter automatiquement à un autre site Web (nom webB) chaque fois que j'accède à webA.Connectez-vous automatiquement à un site Web avec nodejs

J'ai cherché chez Google et je me suis rendu compte que je devais employer des biscuits à ceci? Mon code est maintenant comme ci-dessous:

var cookie = require('cookie'); 
var escapeHtml = require('escape-html'); 
var http = require('http'); 
var url = require('url'); 

function onRequest(req, res) { 

    var cookies = cookie.parse(req.headers.cookie || ''); 
    cookies.name = 'user_abcd'; 
    cookies.password = '1234'; 

    //post a request to webB ??? 
} 

http.createServer(onRequest).listen(3000); 

Si je comprends bien, je suppose que je vais devoir « construire » une demande en utilisant les biscuits que j'ai fait, puis envoyer une demande de poste à WEBB. Suis-je sur la bonne voie? Tous les codes seront très appréciés.

+0

Cela devrait faire à travers une bonne authentification unique la mise en oeuvre. Les cookies d'authentification de spoofing ne sont pas recommandés. De plus, WebB doit avoir la configuration 'CORS' appropriée pour permettre cela. – nilobarp

+0

@nilobarp merci pour une réponse rapide. En tant que débutant dans le web scraping, je cherche juste la méthode la plus basique pour réaliser automatiquement la fonction de connexion, ce qui peut m'aider à comprendre le processus, après quoi je peux essayer de le faire de façon plus professionnelle. – wildcolor

Répondre

1

Les cookies peuvent être passés dans le headers d'un http request comme si

var options = { 
    hostname: 'example.de', 
    path: '/pathexample', 
    method: 'POST', 
    headers: { 
     'User-Agent': 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 
     'Cookie': '<cookie string>', 
     'Accept': '/', 
     'Connection': 'keep-alive' 
    } 
}; 

Ensuite, utilisez cet objet d'option dans

http.request(options, function (resp) { ... }); 

Vérifiez également HTTP CORS & Cookie Domains

+0

Salut, merci pour la réponse. Est-ce que je remplace simplement '' par ma variable 'cookies' dans ce cas pour le faire fonctionner? – wildcolor

+0

Oui, c'est vrai. Vous pouvez également avoir besoin de base64 pour encoder la chaîne si WebB l'attend de cette façon. – nilobarp