Extract Claims struct from auth/types.go into dedicated identity package for better separation of concerns. Update all imports and usages across auth service, token handling, and request context utilities.
31 lines
631 B
Go
31 lines
631 B
Go
package requestctx
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/google/uuid"
|
|
|
|
"github.com/nexavpn/nexavpn/backend/internal/identity"
|
|
)
|
|
|
|
type contextKey string
|
|
|
|
const claimsKey contextKey = "claims"
|
|
|
|
func WithClaims(ctx context.Context, claims identity.Claims) context.Context {
|
|
return context.WithValue(ctx, claimsKey, claims)
|
|
}
|
|
|
|
func ClaimsFromContext(ctx context.Context) (identity.Claims, bool) {
|
|
claims, ok := ctx.Value(claimsKey).(identity.Claims)
|
|
return claims, ok
|
|
}
|
|
|
|
func MustUserID(ctx context.Context) (uuid.UUID, bool) {
|
|
claims, ok := ClaimsFromContext(ctx)
|
|
if !ok {
|
|
return uuid.Nil, false
|
|
}
|
|
return claims.UserID, true
|
|
}
|