Documentation
¶
Index ¶
- func HasTenantPermission(c Claims, tenantID string, perm common.Permission) bool
- func HasTenantRole(c Claims, tenantID, role string) bool
- type Claims
- func (c Claims) GetAudience() (jwt.ClaimStrings, error)
- func (c Claims) GetExpirationTime() (*jwt.NumericDate, error)
- func (c Claims) GetIssuedAt() (*jwt.NumericDate, error)
- func (c Claims) GetIssuer() (string, error)
- func (c Claims) GetNotBefore() (*jwt.NumericDate, error)
- func (c Claims) GetSubject() (string, error)
- type Config
- type Manager
- func (m *Manager) IssueAccessToken(sub string, tenants map[string]Tenant, extra map[string]any) (string, *Claims, error)
- func (m *Manager) IssuePurposeToken(sub string, tenants map[string]Tenant, extra map[string]any) (string, *Claims, error)
- func (m *Manager) IssueRefreshToken(sub string, tenants map[string]Tenant, extra map[string]any) (string, *Claims, error)
- func (m *Manager) IssueToken(sub string, kind TokenKind, tenants map[string]Tenant, extra map[string]any, ...) (string, error)
- func (m *Manager) ParseClaims(tokenStr string) (*Claims, error)
- func (m *Manager) ParseClaimsUnsafe(tokenStr string) (*Claims, error)
- type Tenant
- type TokenKind
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasTenantPermission ¶
func HasTenantPermission(c Claims, tenantID string, perm common.Permission) bool
HasTenantPermission checks if the user has a specific permission in a tenant
func HasTenantRole ¶
HasTenantRole checks if the user has a specific role in a tenant
Types ¶
type Claims ¶
type Claims struct {
Sub string `json:"sub"`
Kind TokenKind `json:"typ"`
Tenants map[string]Tenant `json:"tenants,omitempty"`
JTI string `json:"jti"`
ExpiresAt *jwt.NumericDate `json:"exp,omitempty"`
IssuedAt *jwt.NumericDate `json:"iat,omitempty"`
Issuer string `json:"iss,omitempty"`
Audience jwt.ClaimStrings `json:"aud,omitempty"`
}
Claims defines our custom JWT payload
func (Claims) GetAudience ¶
func (c Claims) GetAudience() (jwt.ClaimStrings, error)
func (Claims) GetExpirationTime ¶
func (c Claims) GetExpirationTime() (*jwt.NumericDate, error)
func (Claims) GetIssuedAt ¶
func (c Claims) GetIssuedAt() (*jwt.NumericDate, error)
func (Claims) GetNotBefore ¶
func (c Claims) GetNotBefore() (*jwt.NumericDate, error)
func (Claims) GetSubject ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
NewManager creates a JWT manager with defaults
func (*Manager) IssueAccessToken ¶
func (m *Manager) IssueAccessToken(sub string, tenants map[string]Tenant, extra map[string]any) (string, *Claims, error)
IssueAccessToken Public issue methods
func (*Manager) IssuePurposeToken ¶
func (*Manager) IssueRefreshToken ¶
func (*Manager) IssueToken ¶
func (m *Manager) IssueToken(sub string, kind TokenKind, tenants map[string]Tenant, extra map[string]any, ttl time.Duration) (string, error)
IssueToken Generic issue with custom TTL
func (*Manager) ParseClaims ¶
ParseClaims validates signature and returns Claims
Click to show internal directories.
Click to hide internal directories.