我正在我的应用程序中添加身份验证,它使用react-router.And react路由器正在处理我的登录/注册页面。我也使用护照进行身份验证,并且护照身份验证工作正常。
但是当我的护照验证成功并且我正在重定向到我的仪表板页面时,我确实遇到了问题。
server.js: -
app.get('/auth/google/callback',
passport.authenticate('google', {
successRedirect: '/dashboard',
failureRedirect: '/',
}));
app.get('*',(req, res) => {
if (process.env.NODE_ENV === 'development') {
webpackIsomorphicTools.refresh();
}
const memoryHistory = createHistory(req.originalUrl);
const store=configureStore(memoryHistory);
const history = syncHistoryWithStore(memoryHistory, store);
function hydrateOnClient() {
res.send(`<!doctype html>${ReactDOM.renderToString(<Default assets={webpackIsomorphicTools.assets()} store={store} />)}`);
}
match({ history, routes: routes(store), location: req.originalUrl },
(error, redirectLocation, renderProps) => {
if (redirectLocation) {
res.redirect(redirectLocation.pathname + redirectLocation.search);
} else if (error) {
console.error('ROUTER ERROR:', pretty.render(error));
res.status(500);
hydrateOnClient();
} else if (renderProps) {
const component = (
<Provider store={store} key="provider">
<RouterContext {...renderProps} />
</Provider>
);
res.status(200);
global.navigator = { userAgent: req.headers['user-agent'] };
res.send(`<!doctype html>${ReactDOM.renderToStaticMarkup(<Default assets={webpackIsomorphicTools.assets()} component={component} store={store} />)}`);
} else {
res.status(404).send('Not found');
}
});
});
将服务器端的URL派生到react-router服务的仪表板路由的最佳方法是什么?