legalgo-BE-go/internal/utilities/utils/get_token_detail.go
2025-03-14 12:41:11 +08:00

35 lines
623 B
Go

package utils
import (
"fmt"
authdomain "legalgo-BE-go/internal/domain/auth"
"net/http"
"strings"
)
func GetTokenDetail(r *http.Request) (authdomain.AuthToken, error) {
authHeader := r.Header.Get("Authorization")
var data authdomain.AuthToken
if authHeader == "" {
return data, fmt.Errorf("unauthorized")
}
if !strings.HasPrefix(authHeader, "Bearer") {
return data, fmt.Errorf("invalid token")
}
token := strings.Split(authHeader, " ")
if len(token) < 2 {
return data, fmt.Errorf("invalid token")
}
data, err := DestructToken(token[1])
if err != nil {
return data, err
}
return data, nil
}