Express JS не может перенаправить пользователя - PullRequest
0 голосов
/ 08 декабря 2018
var express = require('express');
var firebase = require('firebase');
var admin = require('firebase-admin');
var router = express.Router();




    router.post('/api/login', function(req, res) {

      var email = req.body.email;
      var pass = req.body.password;


                login(email, pass);




    });


     function login(email, pass){
        firebase.auth().setPersistence(firebase.auth.Auth.Persistence.NONE);
        firebase.auth().signInWithEmailAndPassword(email, pass).then(function (user) {
          if(user){
            console.log('user');
            res.redirect('/signup');
          };




        }).then(() => {
          // A page redirect would suffice as the persistence is set to NONE.
          return firebase.auth().signOut();
        }).then(() => {
          window.location.assign('/signup');
        }).catch(function (error) {

          var errorMessage = error.message;
        });  // auth catch End 

      };// login fun 

............................................................................................................................................................ если пользователь не равен нулю, я хочу перенаправить пользователя на регистрацию

1 Ответ

0 голосов
/ 08 декабря 2018

Если запрос POST поступает от вызова Ajax на веб-странице браузера, то ответ на запрос отправляется только вашему сценарию, который сделал вызов Ajax.Браузер не видит его вообще, поэтому сам браузер ничего не делает с ответом на POST.Ответ просто идет на ваш сценарий.Итак, если вы хотите, чтобы страница перенаправляла после вызова Ajax, вам нужно вернуть ответ, который может идентифицировать сценарий, и сценарию необходимо выполнить перенаправление на стороне клиента, например:

window.location = "http://someURL";

В тех случаях, когда ваш сценарий ищет ответ о перенаправлении, вы можете либо заставить сценарий просмотреть состояние и заголовок, чтобы увидеть перенаправление, либо вместо этого просто вернуть некоторый JSON, который сообщает сценарию, что делать.


Если запрос POST поступает из HTML-формы в браузере (без использования Javascript), браузер будет смотреть ответ от POST и либо отображать полученный ответ (если это ответ 2xxx), либо следовать перенаправлениюесли это ответ 3xx.

...