Using channels and goroutines to run the authentication.

2FA not tested.