Javascript 使用react路由器进行非预期重定向
我有一个简单的react应用程序,上面有一个像这样设置的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
/
)
我又摸索了一会儿,就解决了这个问题。第一次访问
/
时,组件索引
向/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('/');
});