2016-06-10 1 views
4

Ich benutze node.js request-Modul, um ein ID_Token von einer API zu holen. Nach dem Abrufen dieses id_token möchte ich eine redirect uri Antwort mit einem set-cookie header to the redirected url senden. Aber ich kann nicht recht herausfinden, wie es geht.Senden Sie einen Set-Cookie-Header an eine Weiterleitungs-URL in node.js

ist hier mein Code:

app.use("/nodejs-server/retrieveCode", function(req, res) { 

     var clientID = 'some random string' 
     var client_Secret = 'another random string' 
     var code_token = clientID + ":" + client_Secret 
     var buffer = new Buffer(code_token) 
     var token = buffer.toString('base64') 
     var rtoken = "Basic " + token; 
     var headers = { 
      'Content-Type': 'application/json', 
      'Authorization': rtoken 
     } 
     var postData = {grant_type: 'authorization_code', code: req.query.code, redirect_uri: 'http://localhost:3000/nodejs-server/retrieveCode'} //Query string data 
     var options = { 
      method: 'POST', //Specify the method 
      body: postData, 
      url: 'http://localhost:4000/server/token', 
      json: true, 
      headers: headers 
     } 
     request(options 
     , function(error, response, body){ 
      if(error) { 
       console.log(error); 
      } else { 
       //send a redirect uri and set-cookie header response 

      } 
     }); 

Ich versuchte

res.redirect(302, "http://localhost:9000"); 

verwenden und es ist in der Lage zu umleiten, aber ich bin auch nicht in der Lage

mit dem Cookie zu senden Beliebig Hilfe wird geschätzt.

Antwort

11

Nach vielen Versuchen und Fehlern und Googeln konnte ich endlich mein Ziel erreichen. Um einen Cookie mit Ablauf an die Weiterleitungs-URL zu senden, habe ich gerade

s = body.exp.toUTCString(); 
res.cookie('id_token' ,body.id_token, {expires: s}); 
res.redirect(302, 'http://localhost:8080'); 
hinzugefügt