Basically what I am saying is not to touch the backstack in the navcontroller, let the framework handle that. When you detect the timeout, then push your AuthorizationGraph, you should have a separate graph for this to be able to push it in different destinations of your App. When the AuthorizationGraph is done it will pass the result to the calling destination. Then at that destination, if you just pop the AuthorizationGraph then the stack remains untouched as it was before pushing the AuthorizationGraph.
If the user failed login then you can log it out of the App