func Begin() gin.HandlerFunc {
	return func(c *gin.Context) {
		c.Request = addProviderToContext(c, c.Param(string(utils.ProjectContextKeys.ProviderCtxKey)))
		if gothUser, err := gothic.CompleteUserAuth(c.Writer, c.Request); err != nil {
			gothic.BeginAuthHandler(c.Writer, c.Request)
		} else {
			logger.Debugf("user: %#v", gothUser)
		}
	}
}
Begin login with the auth provider
package auth
import (
	"net/http"
	"time"
	"github.com/cmelgarejo/go-gql-server/internal/orm"
	"github.com/dgrijalva/jwt-go"
	"github.com/cmelgarejo/go-gql-server/internal/logger"
	"github.com/cmelgarejo/go-gql-server/pkg/utils"
	"github.com/gin-gonic/gin"
	"github.com/markbates/goth/gothic"
)
type Claims struct {
	Email string `json:"email"`
	jwt.StandardClaims
}