2017-02-11 17 views
0

У меня есть две проблемы: мне нужно иметь возможность перенаправлять пользователей с разрешения на получение прав на facebook из passjs-facebook и переадресации платежей в PayPal, но я не знаю, как это сделать в угловом режиме. Мне нужно получить доступ к опубликованным данным JSON, поступающим с моего собственного экспресс-сервера с угловым маршрутом, который получает и использует эти данные.Angular 2: Как обрабатывать перенаправления маршрутов на мою страницу с входящими данными JSON?

Если я сделаю кнопку входа в систему href = "/ auth", он отправит моего пользователя на страницу facebook, чтобы предоставить права доступа к приложениям, после того как они перенаправят их на/auth/facebook/callback, которая является пустой белой страницей с этим json: {"ok": true, "status": "Login successful", "success": true, "token": "...", user: {..},}. Как сделать так, чтобы они были перенаправлены обратно на страницу моего приложения angular2 и что этот токен читается в json-объект в моих приложениях, поэтому я могу поместить его в локальное хранилище? Это мой бэкенд код:

userRouter.get('/auth', passport.authenticate('facebook', {scope: ['public_profile', 'user_friends', 'email']}), (req, res) => {}); 
userRouter.get('/auth/facebook/callback', function(req,res,next){ 
    passport.authenticate('facebook', function(err, user, info) {   
    if (err) { 
     return next(err); 
    } 
    if (!user) { 
     return res.status(401).json({ 
     err: info 
     }); 
    } 
    req.logIn(user, function(err) { 
     if (err) { 
     return res.status(500).json({ 
      err: 'Login failed' 
     }); 
     } 
     var token = Verify.getToken(user); 
     res.status(200).json({ 
     status: 'Login successful', 
     success: true, 
     token: token 
     }); 
    }); 
    })(req,res,next); 
}); 

ответ

0

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

res.redirect('/#!/myprofile?token=MYTOKEN'); вместо res.status(200).json... код

В качестве альтернативы вы можете разобрать строку запроса, передаваемое со редиректа сразу в Угловое как в this example, но я думаю, что путь может быть немного неаккуратно. Этот пример также поможет вам получить доступ к строкам запроса в Angular2.