Documentation ¶
Index ¶
- Constants
- Variables
- type AccessToken
- type AccessTokenProvider
- type AccessTokenSigner
- type CachingJwtProvider
- type CallbackJwtProvider
- type ConstAccessTokenProvider
- type Crypto
- type GeneratorJwtProvider
- type GeneratorJwtProviderOption
- type Jwt
- type JwtBodyContent
- type JwtGenerator
- type JwtHeaderContent
- type JwtVerifier
- type TokenContext
- type VirgilAccessTokenSigner
Constants ¶
View Source
const ( IdentityPrefix = "identity-" IssuerPrefix = "virgil-" )
jwt body prefixes
View Source
const ( VirgilContentType = "virgil-jwt;v=1" JwtType = "JWT" )
jwt header constant
Variables ¶
View Source
var ( ErrIdentityIsMandatory = errors.New("identity is mandatory") ErrContextIsMandatory = errors.New("token context is mandatory") ErrJWTInvalid = errors.New("jwt invalid") ErrJWTTokenIsMandatory = errors.New("jwt token is mandatory") ErrJWTExpired = errors.New("jwt token is expired") ErrJWTParseFailed = errors.New("jwt parse failed") ErrJWTIncorrect = errors.New("jwt body does not contain virgil prefix") )
Functions ¶
This section is empty.
Types ¶
type AccessToken ¶
type AccessTokenProvider ¶
type AccessTokenProvider interface {
GetToken(context *TokenContext) (AccessToken, error)
}
type AccessTokenSigner ¶
type CachingJwtProvider ¶
type CachingJwtProvider struct { RenewTokenCallback func(context *TokenContext) (*Jwt, error) Jwt *Jwt // contains filtered or unexported fields }
func NewCachingJwtProvider ¶
func NewCachingJwtProvider(renewTokenCallback func(context *TokenContext) (*Jwt, error)) *CachingJwtProvider
func NewCachingStringJwtProvider ¶
func NewCachingStringJwtProvider(renewTokenCallback func(context *TokenContext) (string, error)) *CachingJwtProvider
func (*CachingJwtProvider) GetToken ¶
func (c *CachingJwtProvider) GetToken(context *TokenContext) (AccessToken, error)
type CallbackJwtProvider ¶
type CallbackJwtProvider struct {
GetTokenCallback func(context *TokenContext) (*Jwt, error)
}
func NewCallbackJwtProvider ¶
func NewCallbackJwtProvider(callback func(context *TokenContext) (*Jwt, error)) *CallbackJwtProvider
func NewCallbackStringJwtProvider ¶
func NewCallbackStringJwtProvider(renewTokenCallback func(context *TokenContext) (string, error)) *CallbackJwtProvider
func (*CallbackJwtProvider) GetToken ¶
func (c *CallbackJwtProvider) GetToken(context *TokenContext) (AccessToken, error)
type ConstAccessTokenProvider ¶
type ConstAccessTokenProvider struct {
AccessToken AccessToken
}
func (*ConstAccessTokenProvider) GetToken ¶
func (a *ConstAccessTokenProvider) GetToken(context *TokenContext) (AccessToken, error)
type Crypto ¶
type GeneratorJwtProvider ¶
type GeneratorJwtProvider struct {
// contains filtered or unexported fields
}
func NewGeneratorJwtProvider ¶
func NewGeneratorJwtProvider(generator JwtGenerator, options ...GeneratorJwtProviderOption) *GeneratorJwtProvider
func (*GeneratorJwtProvider) GetToken ¶
func (g *GeneratorJwtProvider) GetToken(context *TokenContext) (AccessToken, error)
type GeneratorJwtProviderOption ¶
type GeneratorJwtProviderOption func(p *GeneratorJwtProvider)
func SetGeneratorJwtProviderAddtionalData ¶
func SetGeneratorJwtProviderAddtionalData(additionalData map[string]interface{}) GeneratorJwtProviderOption
func SetGeneratorJwtProviderDefaultIdentity ¶
func SetGeneratorJwtProviderDefaultIdentity(identity string) GeneratorJwtProviderOption
type Jwt ¶
type Jwt struct { BodyContent JwtBodyContent HeaderContent JwtHeaderContent Signature []byte // contains filtered or unexported fields }
func JwtFromString ¶
func NewJwt ¶
func NewJwt(header JwtHeaderContent, body JwtBodyContent) *Jwt
NewJwt return new instance of Jwt Note: JwtBodyContent is huge params but it's never used other place nolint: gocritic
func (*Jwt) IsExpiredDelta ¶
IsExpiredDelta returns error if token expires delta time before it's expiry date
type JwtBodyContent ¶
type JwtGenerator ¶
type JwtGenerator struct { AppKey crypto.PrivateKey AppKeyID string AppID string AccessTokenSigner AccessTokenSigner TTL time.Duration }
func (*JwtGenerator) GenerateToken ¶
func (j *JwtGenerator) GenerateToken(identity string, additionalData map[string]interface{}) (*Jwt, error)
func (*JwtGenerator) Validate ¶
func (j *JwtGenerator) Validate() error
type JwtHeaderContent ¶
type JwtVerifier ¶
type JwtVerifier struct {
// contains filtered or unexported fields
}
func NewJwtVerifier ¶
func NewJwtVerifier(appPublicKey crypto.PublicKey, appPublicKeyID string, accessTokenSigner AccessTokenSigner) *JwtVerifier
func (*JwtVerifier) Validate ¶
func (j *JwtVerifier) Validate() error
func (*JwtVerifier) VerifyToken ¶
func (j *JwtVerifier) VerifyToken(jwtToken *Jwt) error
type TokenContext ¶
type VirgilAccessTokenSigner ¶
type VirgilAccessTokenSigner struct {
Crypto Crypto
}
func (*VirgilAccessTokenSigner) GenerateTokenSignature ¶
func (t *VirgilAccessTokenSigner) GenerateTokenSignature(data []byte, privateKey crypto.PrivateKey) ([]byte, error)
func (*VirgilAccessTokenSigner) GetAlgorithm ¶
func (t *VirgilAccessTokenSigner) GetAlgorithm() string
func (*VirgilAccessTokenSigner) VerifyTokenSignature ¶
Click to show internal directories.
Click to hide internal directories.