i am using nodejs request module. how to make multiple requests for a session after user login using this? how to make sure that the user is logged in and form data is successfuly submitted using request module?
i am trying the example in the docs to submit the form for user login but it always redirects on the default page.
can anyone guide me through?
THANKS
You need to save cookie after login request, use cookie in next request.
var cookie = null
login()
function login() {
request(host)
.post('/rest/user/login')
.send({email: 'email@domain.com', password: 'qweqwe'})
.expect('Content-Type', /json/)
.expect(200)
.end(function (err, res) {
if (err) throw err
if (!res.body.error) {
cookie = res.headers['set-cookie']
nextRequest()
}
})
}
function nextRequest() {
request(host)
.post('/rest/data')
.set('cookie', cookie)
.send({
data: 'data'
})
.expect('Content-Type', /json/)
.expect(200)
.end(function (err, res) {
if (err) throw err
console.log(res.body.data)
})
}
As your wish request example, this tested. Here are simple use.
var request = require('request');
var host = 'http://localhost'
var loginUrl = host + '/rest/user/login'
var nextUrl = host + '/rest/next/request'
var j = request.jar()
function login(jar, callback) {
request.post({url: loginUrl, jar: jar}, callback).form({username: 'user1', password: 'pass1'})
}
function post(jar, callback) {
request.post({url: nextUrl, jar: jar}, callback).form({id: 1})
}
login(j, function (err, response, body) {
//check err, response, body
post(j, function(err, response, body){
//check err, response, body
console.log(body)
})
})