legalgo-BE-go/internal/utilities/utils/get_token_detail.go

35 lines
623 B
Go
Raw Normal View History

2025-03-02 04:36:17 +08:00
package utils
import (
2025-03-14 12:41:11 +08:00
"fmt"
2025-03-02 04:36:17 +08:00
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 == "" {
2025-03-14 12:41:11 +08:00
return data, fmt.Errorf("unauthorized")
2025-03-02 04:36:17 +08:00
}
if !strings.HasPrefix(authHeader, "Bearer") {
2025-03-14 12:41:11 +08:00
return data, fmt.Errorf("invalid token")
2025-03-02 04:36:17 +08:00
}
token := strings.Split(authHeader, " ")
if len(token) < 2 {
2025-03-14 12:41:11 +08:00
return data, fmt.Errorf("invalid token")
2025-03-02 04:36:17 +08:00
}
data, err := DestructToken(token[1])
2025-03-02 04:36:17 +08:00
if err != nil {
return data, err
}
return data, nil
}