Newer
Older
package auth
import (
"net/http"
"github.com/rs/zerolog"
)
type contextKey int
const (
contextAuthClaims contextKey = iota
)
func RequestAuthClaims[T any, PT interface {
*T
Claims
zerolog.LogObjectMarshaler
}](r *http.Request) *T {
value := r.Context().Value(contextAuthClaims)
if value == nil {
return nil
}
if claims, ok := value.(*T); ok {
return claims
}
return nil
}
func RequestAuthClaimsAsLogObjectMarshaler(r *http.Request) zerolog.LogObjectMarshaler {
value := r.Context().Value(contextAuthClaims)
if value == nil {
return nil
}
if claims, ok := value.(zerolog.LogObjectMarshaler); ok {
return claims
}
return nil
}