I have implemented the second option for my site, and I am pleased with the results.
It is effective. All components of the main application are checked with the server to make sure that the user is actually authenticated before rendering based on data received from the server. The basic layout is pretty simple when it is either on or in a login state, where various components are registered with Viewport based on state.
I would have to try the map layout option to give an informed opinion on whether this is better than 2, but they seem similar to me.
Macy
source share