<ReactRouter>
<Switch>
<Route path="/sign-in" component={SignInPage}/>
<Route path="/sign-up" component={SignUpPage}/>
<Route path="/sign-forgot" component={SignForgotPage}/>
<Route component={MainLayout}/>
</Switch>
</ReactRouter>
<Switch>
<Route path="/(sign-in|sign-up|sign-forgot)" component={AuthRoutes} />
<Route component={MainRoutes} />
</Switch>
Или хранить онлайн ли пользователь обязательно надо вне базы, например в redis? для скорости и чтобы использовать рационально мощность сервера. А потом при запросе юзеров, брать из редиса id этого юзера и если такой имеется, возвращать на фронт этого юзера с полем isOnline true