我正在使用React JS和Redux开发一个Web应用程序。我几天前刚接触React。现在,我在使用中间件时遇到了一些麻烦。
我现在要执行的操作是实现一项功能,该功能可以在请求/路由之前检查用户是否已登录。如果未登录用户,我会将用户重定向到登录页面/注册页面。我正在使用这样的中间件。
function logger({getState}){
return next => action => {
let accessToken = localStorage.getItem('access_token');
//if the accessToken is empty, user is not authenticated.
if(accessToken)
{
return next(action);
}
else
{
//redirect to the login page.
}
}
}
const middleware = applyMiddleware(thunk, logger);
const store = createStore(portalApp, middleware);
上述代码的问题在于它适用于每条路线的每个请求。我不想将该中间件应用于登录和注册路由,因为无需访问用户即可登录到登录或注册页面。我想将该中间件应用于特定路由或避免使用特定路由。我该怎么做?还是有比在这种情况下使用中间件更好的方法?