Skip to content

duongdam/fire-verify-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Firebase Middleware Verify Id Token

Install

go get github.com/duongdam/fire-verify-auth

Usage

package firebase_verify_accessToken

import (
	"github.com/gofiber/fiber/v2"
	"os"
	"strings"

	authVerify "github.com/duongdam/fire-verify-auth"
)

type Config struct {
	Key []byte
}

const (
	authorizationHeaderKey  = "authorization"
	authorizationTypeBearer = "bearer"
	userId                  = "user_id"
)

func authMiddleware() fiber.Handler {
	return func(ctx *fiber.Ctx) error {
		authorizationHeader := ctx.Get(authorizationHeaderKey)
		fields := strings.Fields(authorizationHeader)
		authorizationType := strings.ToLower(fields[0])
  
		accessToken := fields[1]

		// Verify token
		claims, err := authVerify.VerifyIDToken(accessToken, os.Getenv("GO_PROJECT_ID"))
		if err != nil {
			return ctx.Status(fiber.StatusUnauthorized).JSON(fiber.Map{
				"error": err.Error(),
			})
		}
		signInProvider := claims["firebase"].(map[string]interface{})["sign_in_provider"].(string)

		println("signInProvider", signInProvider)

		ctx.Next()
		return nil
	}
}

links

https://github.com/duongdam/fire-verify-auth