Могу ли я не перенаправлять страницу на сторону клиента после отправки?

#javascript

Вопрос:

Я пытаюсь перенаправить страницу , когда отправляю данные с OAuth, однако я не могу подключиться к стороне клиента с помощью вызова res.redirect , поэтому я попытался разместить ее где угодно, но она все равно не работает .

и я получил ошибку, как : Cannot set headers after they are sent to the client

Как я могу изменить URL-адрес с redirect помощью ?? если это невозможно, то какова другая альтернатива ??

Заранее благодарю вас !

Вот код :

 app.get("/callback", cors(), (req, res) => {
 

  if (req.query.code !== null amp;amp; req.query.code !== undefined) {
    var token_url = "https://www.oauthserver/oauth2.0/token"; //this is Oauth server
    var options = {
      url: token_url,
      method: "POST",
      form: {
        grant_type: "authorization_code",
        client_id: client_id,
        client_secret: client_secret,
        redirect_uri: redirectURI,
        code: req.query.code,
        state: req.query.state,
      },
    };

 

    request(options, function (error1, response1, body1) {
      if (!error1 amp;amp; response1.statusCode == 200) {
        var tdata = JSON.parse(body1);
        var options2 = {
          url: "https://www.oauthserver/oauth2.0/resource", //this is Oauth server
          headers: {
            "Content-Type": "application/json",
            Authorization: "Bearer "   tdata.access_token,
          },
        };
        request(options2, function (error2, response2, body2) {
          if (!error2 amp;amp; response2.statusCode == 200) {
            res.redirect("http://localhost:3000"); //client Side
            res.status(200).send(body2);
          
            console.log(JSON.parse(body2));
          
          } else {
            res.status(response2.statusCode).end();
            console.log("error2 = "   response2.statusCode);
          }
        });
      } else {
        res.status(response1.statusCode).end();
        console.log("error1 = "   response1.statusCode);
      }
    });
  }
}); 

Комментарии:

1. В качестве запроса javascript возврат перенаправления в заголовках в любом случае не будет работать должным образом. Сделайте перенаправление в javascript, в коде обработки ответов.

2. Большое вам спасибо, тогда я должен отправить данные клиенту, и как только получу данные на стороне клиента, я должен изменить URL-адрес ? то, что я понимаю, правильно??

3. Это звучит правильно. Прежде чем выполнить перенаправление, вам, возможно, потребуется что-то сделать с возвращенным токеном, чтобы он сохранялся после перенаправления.

4. Боже, большое тебе спасибо за такой мудрый ответ !! это мне очень помогло, честно говоря !