Refactoring to allow multiple auth methods at the same time.
Adding GitHub authentication provider.