@Stepgor

Как грамотно реализовать post запрос с последующим перенаправлением на следующую страницу?

После логина клиент попадает на callback страницу, где я совершаю запрос по апи к ключу и потом перенаправляю на /auth, но я хочу сделать auth по post запросу, тк там я получаю данные клиента и заношу в бд, а после редиртект на /
app.get('/callback', (req,res) => {
    request({
      headers: {
          'Authorization': 'Basic ' + usernamePasswordToBase64('id', 'secret'),
      },
      'url': 'url',
      "formData":{
          "grant_type": "authorization_code",
          "code": req.query.code,
      },
      "method": "POST"

    }, function(err,resp,body){

      if(err) console.log(err);

      // set the session so we are logged in
      req.session.authentication_data = body;
      res.redirect('/auth');
              
  })

})

Вот auth
app.post('/auth', (req, res) => {
    var authentication_data = JSON.parse(req.session.authentication_data);
    request({
        url: 'url,
        headers: {
            'Authorization': 'Bearer ' + authentication_data.access_token,
        },
        method: 'GET'
      }, function (err, resp, body) {
        if (err) console.log(err)

        console.log(body);

        data = JSON.parse(body);
      
        userObj = {
          id: data.response.id,
          nickname:  data.response.username,
          avatarImg: data.response.avatar,
          balances: {
            usd: data.balance,
            coins: data.credits
          }
        }
        
        req.session.info = userObj;
        res.redirect('/');
      })
})
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@yapaha
Разработчик
Можно не делать редирект а просто все что у вас в "app.post('/auth', (req, res) => {..." вынести в отдельный метод и вызывать этот метод в "/callback"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Qlean Labs Москва
До 250 000 руб.
Acme Crypto Corp Нижний Новгород
от 100 000 до 150 000 руб.
20 марта 2019, в 01:07
1000 руб./за проект
20 марта 2019, в 00:27
2000 руб./за проект
19 марта 2019, в 23:14
6000 руб./за проект