Adding a new 'managed' authentication method to Discourse

I would like to learn, if implementing an authenticator would be the right path towards

Do I understand right, that all registered authenticators are called early in the app, so I could test therein, if a username and some hint for email authentication is included in the URL and render a “send me a login link” form as response?