title: What is the preferred pattern for authentication in React Native
body: <p>I know there's a few ways to handle this but I'm wondering if there's a preferred or recommended pattern for this that scales well with larger complex apps?<br>
  My login process consists of 3 screens or views currently and
  my environment consists of React Native, Redux, React Navigation tied to Redux, and Redux Sagas.</p>
  
  <p>Pattern 1:<br>
  In my root component I check the authenticated state and return a Login component or return my AppWithNavigationState component.
  Problem here is that I have to emulate 3 separate screens for my app flow within one Login component, which is fine with Reacts architecture but creates a lot of messy conditional logic with sub components.</p>
  
  <p>Pattern 2:
  My root component just returns my AppWithNavigationState and my startup saga redirects the app to a Login Screen if the user is not authenticated.  Upon successful login the navigation stack is reset to my home screen.
  The problem with this idea is whichever screen is your default screen, you will redirect to a different screen depending on authenticated state.  I haven't been able to find a good way of setting the default screen dynamically on app load in the Navigator.</p>