package middleware import ( "fmt" "strings" "gitea.frenchtouch.duckdns.org/kratisto/budget-backend/internal/storage/model" "gitea.frenchtouch.duckdns.org/kratisto/budget-backend/internal/utils" "github.com/gin-gonic/gin" "google.golang.org/api/oauth2/v1" ) func ValidateOAuthToken(c *gin.Context) { authorizationHeader := c.GetHeader("Authorization") authorizationHeaderSplitted := strings.Split(authorizationHeader, " ") if len(authorizationHeaderSplitted) != 2 { utils.JSONError(c.Writer, model.ErrBadRequestFormat) return } oauth2Service, err := oauth2.NewService(c) if oauth2Service == nil { fmt.Println(err) utils.JSONError(c.Writer, model.ErrInternalServer) return } tokenInfoCall := oauth2Service.Tokeninfo() tokenInfoCall.IdToken(authorizationHeaderSplitted[1]) token, err := tokenInfoCall.Do() if err != nil { utils.GetLogger().WithError(err).Error(err) utils.JSONError(c.Writer, model.ErrBadRequestFormat) return } c.Set("googleUserId", token.UserId) }