Я не могу перенаправить на другую страницу в ответ - PullRequest
0 голосов
/ 17 апреля 2020

Я успешно аутентифицировал пользователя в MERN по паспорту. js. Проблема в том, что я хочу сказать, что если пользователь уже существует, просто перенаправьте его в профиль, поэтому я проверил

        if (user) {
            (response => {
                this.props.history.push('/profile')
            })
        }

Но он не перенаправляет в профиль таким образом.

У меня есть уже пробовал только с console.log ("Works"), но, как я вижу, не работает только функция pu sh.

Кто-нибудь знает, как это исправить?

Вот полный код:

const Strategy = require('passport-local').Strategy
const mongoose = require('mongoose')
const GoogleUser = require('../models/google');


const GoogleAuth = new Strategy ({ passReqToCallback:true, usernameField: 'email', passwordField: 'id' }, function(req, email, id,done){ 

    GoogleUser.findOne({ email: req.body.email}).lean().exec((err, user) => {
        if (err) {
            return done(err, null);
        }

        if (user) {
            (response => {
                this.props.history.push('/profile')
            })
        }

        else{
            let newUser = new GoogleUser({
                email : req.body.email,
                id : req.body.id,
                name : req.body.name,
                token : req.body.token,
                image : req.body.image
            })

            newUser.save((error, inserted) => {
                if (error) {
                    return done(error, null);
                }

                return done(null, inserted);

            })
        }
    })  

});

module.exports = GoogleAuth;

Аутентификация:

const express = require('express');
const app = express.Router();
const passport = require('../passport')
const mongoose = require('mongoose')
const User = require('../models/user');
const GoogleUser = require('../models/google');
const Strategy = require('passport-local').Strategy

app.post('/google', (req, res, next) =>{
  passport.authenticate('google', function(error, user, info){
    if (error) {
      return res.status(500).json({

        message: error || 'Something happend',
        error : error.message || "Server error"

      });  
    }
    req.logIn(user, function(error, data){
      if (error) {
        return res.status(500).json({

          message: error || 'Something happend',
          error : error.message || "Server error"

        });  
      }

      return res.json(user);

    })
  })(req, res, next);


})



module.exports = app;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...