Multiple attributes for user identification + API + OIDC tokens

Hi,
How can I implement a login flow where I may have 3 different usernames for the user (e.g. employee number, mobilephone and email)?

I was thinking in use Okta Authentication API and first search for a user wiht the provided identification, obtain the user id/username and authenticate using the id and provided password.

If I want OIDC token (access and refresh) tokens to be generated how could this be imploemented?

Thank you.