Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用react路由器进行非预期重定向_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 使用react路由器进行非预期重定向

Javascript 使用react路由器进行非预期重定向,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我有一个简单的react应用程序,上面有一个像这样设置的react路由器。它位于我的应用程序根目录(/) 我又摸索了一会儿,就解决了这个问题。第一次访问/时,组件索引向/api/polls发出异步请求。然后用户通过Twitter登录。以下是相关路线: router.get('/auth/twitter', passport.authenticate('twitter')); router.get('/auth/twitter/callback', passport.authenticate('t

我有一个简单的react应用程序,上面有一个像这样设置的react路由器。它位于我的应用程序根目录(
/


我又摸索了一会儿,就解决了这个问题。第一次访问
/
时,组件
索引
/api/polls
发出异步请求。然后用户通过Twitter登录。以下是相关路线:

router.get('/auth/twitter', passport.authenticate('twitter'));
router.get('/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/login' }), function(req, res) {
  res.redirect(req.session.returnTo || '/');
});
问题是,
req.session.returnTo
存储了
/api/polls
,作为最后一个“访问”的url。登录后,浏览器重定向到
/api/polls
,在页面上呈现一些丑陋的json。就我而言,这是一个容易解决的问题。我刚把路线改成:

router.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRedirect: '/login' }), function(req, res) {
  res.redirect('/');
});

用户总是被重定向回
/
,这正是我想要的。如果要重定向回用户的最后一页,我不确定该怎么办。

您调试过了吗?重定向实际上发生在哪里?是什么原因造成的?
router.get('/auth/twitter', passport.authenticate('twitter'));
router.get('/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/login' }), function(req, res) {
  res.redirect(req.session.returnTo || '/');
});
router.get('/auth/linkedin/callback', passport.authenticate('linkedin', { failureRedirect: '/login' }), function(req, res) {
  res.redirect('/');
});