# Functions
NewAuthHandler creates a new instance of Handler with the given Service.
NewAuthService creates a new instance of authServiceImpl with the provided services and configuration.
NewOAuthProviders initializes and registers the OAuth providers using the Goth library.
OAuthCallbackMiddleware is a Gin middleware function that handles the callback from the OAuth provider.
OAuthMiddleware is a Gin middleware function that handles the initial OAuth request.
Router sets up the routes for authentication-related API endpoints It groups the routes under "api/v1/auth" and assigns handler functions to the routes.
# Interfaces
Service defines the methods that our authentication service will implement.