Задачу можно разделить на 2 части:
1) получение токена (идентификатора сессии или что еще нужно) от сервиса.
2) onEnter хук в роутере
Примерный код:
export default function configRoutes(store) {
function _ensureAuthenticated(nextState, replace, callback) {
const { dispatch } = store
const { session } = store.getState()
const { currentUser } = session
if (!currentUser && localStorage.getItem('token')) {
dispatch(getCurrentAccount())
} else if (!localStorage.getItem('token')) {
replace('/signin')
}
callback()
}
return (
<Route component={App}>
<Route path='/signin' component={SigninContainer} />
<Route path='/signup' component={SignupContainer} />
<Route path='/' component={AuthenticatedContainer} onEnter={_ensureAuthenticated}>
<Route component={ReportContainer}>
<Route path='/activities' component={ActivitiesContainer} />
<Route path='/activities/:id' component={CaptionsContainer} />
</Route>
</Route>
</Route>
)
}
Более подробно можно посмотреть
в источнике. ConfigRoutes функция вызывается
здесь.