Best way to protect authenticated routes and share user session without prop drilling? - TanStack