v2.0: Enhances authenticator to support context
Modifies the authenticator to accept a context string during authentication. This allows for more fine-grained control and differentiation during the authentication process. The context is passed to the verifyCredentials method and set on the user identity.