@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('/');
      })
})
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yapaha
Разработчик
Можно не делать редирект а просто все что у вас в "app.post('/auth', (req, res) => {..." вынести в отдельный метод и вызывать этот метод в "/callback"
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Cindx Москва
от 130 000 до 180 000 руб.
Reelmotion Games Санкт-Петербург
от 45 000 до 75 000 руб.
от 200 000 до 300 000 руб.