Cookie не установлен - суперагент

Я делаю POST-запрос к API с суперагентом, это в основном api входа в систему, который подписывает токен и устанавливает cookie.

Код для запроса от реакции выглядит следующим образом

     agent
        .post('http://localhost:3010/api/auth/login')
        .send({username:this.state.username,password:this.state.password})      
        .end((err,res)=>{
            if(err) console.log(err);
            if(res.body.auth===true){
                alert("Successful Login , You'll be Redirected");
                history.push('/dashboard');
            }
            });

На моем экспресс-сервере я использую этот код:

router.post('/login', function(req, res) {
  User.findOne({ username: req.body.username }, function (err, user) {

if (err) return res.status(500).send('Error on the server.');
if (!user) return res.status(404).send('No user found.');

var passwordIsValid = bcrypt.compareSync(req.body.password, user.password);
if (!passwordIsValid) return res.status(401).send({ auth: false, token: null });
var token = jwt.sign({ id: user._id, role : user.role }, config.secret, {
  expiresIn: 86400 // expires in 24 hours
});
res.cookie('auth',token);
res.status(200).send({ auth: true, token: token });

  });
});

Я устанавливаю файл cookie в ответ, но проблема в том, что файл cookie никогда не устанавливается в браузере. Эта проблема возникает не тогда, когда я использую POSTMAN для проверки APIS, но проблема возникает при использовании apis в реакции в реальных браузерах.

Где я не прав? Или какой еще метод лучше использовать, чтобы добиться результата


person Amar Pathak    schedule 12.01.2018    source источник
comment
ты решил это?   -  person Prasanth Kanna    schedule 30.10.2020


Ответы (1)


Я считаю, что вы отправляете токен обратно клиенту как часть запроса, доступного через атрибут cookie в объекте ответа. Не сохранять cookie в банке cookie браузера. Для этого вам нужно будет найти файл cookie как часть обратного вызова суперагента, а затем сохранить файл cookie, используя клиентскую сторону localstorage.

person Jon Kolman    schedule 12.01.2018