I am using node.js request
module to fetch an id_token from an API. After fetching that id_token I want to send a redirect uri
response with a set-cookie header to the redirected url
. But I can't quite figure out how to do it.
Here is my 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 } });
I tried using
res.redirect(302, "http://localhost:9000");
and it is able to redirect but I am not able to send the cookie with it as well
Any help is appreciated.
After lots of trials and errors and googling I was finally able to achieve my goal. In order to send a cookie with an expiry to the the redirect URL, I just added
const expires = body.exp.toUTCString(); res.cookie('id_token', body.id_token, { expires }); res.redirect(302, 'http://localhost:8080');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With