Angular 2:如何使用传入的JSON数据处理到我的页面的重定向路由?

时间:2017-02-11 06:26:51

标签: json angular express passport.js angular2-routing

我有两个问题,我需要能够重定向用户从visajs-facebook的facebook权限接受和paypal付款重定向,但我不知道如何以角度方式执行此操作。我需要访问来自我自己的快速服务器的已发布的JSON数据,其中包含接收和使用该数据的角度路由。

如果我做了一个href =" / auth"登录按钮它将我的用户发送到Facebook的页面以授予应用程序权限,在他们这样做之后将它们重定向到/ auth / facebook / callback这是一个空白的白页与这个json:{" ok" :true," status":"登录成功","成功":true,"令牌":" ...& #34;,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);
});

1 个答案:

答案 0 :(得分:0)

我将res.redirect用于您的某个Angular页面的网址,并将该标记包含为查询字符串。

res.redirect('/#!/myprofile?token=MYTOKEN');代替res.status(200).json...代码

或者,您可以像在this example中一样解析在Angular中使用重定向发送的查询字符串,但我认为这种方式可能有点混乱。 该示例还将帮助您访问Angular2中的查询字符串。