Authentication Flow Context
Authentication flows can be quite complex, and have a variety of different pieces of state that needs to be managed to successfully authenticate. Developers also have differing needs for when and where custom data needs to be supplied to an authentication flow. Given the nature of asynchronous computing, and the need for determinism and testing, authentication flows use a common pattern of representing per-session state within an associated Context object.