auth

package
v0.10.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2021 License: MIT Imports: 6 Imported by: 76

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrKeysMissing = errors.New("missing API key or secret key")
)

Functions

This section is empty.

Types

type APIKeyTokenVerifier

type APIKeyTokenVerifier struct {
	// contains filtered or unexported fields
}

func ParseAPIToken

func ParseAPIToken(raw string) (*APIKeyTokenVerifier, error)

ParseAPIToken parses an encoded JWT token and

func (*APIKeyTokenVerifier) APIKey

func (v *APIKeyTokenVerifier) APIKey() string

APIKey returns the API key this token was signed with

func (*APIKeyTokenVerifier) Identity

func (v *APIKeyTokenVerifier) Identity() string

func (*APIKeyTokenVerifier) Verify

func (v *APIKeyTokenVerifier) Verify(key interface{}) (*ClaimGrants, error)

type AccessToken

type AccessToken struct {
	// contains filtered or unexported fields
}

Signer that produces token signed with API key and secret

func NewAccessToken

func NewAccessToken(key string, secret string) *AccessToken

func (*AccessToken) AddGrant

func (t *AccessToken) AddGrant(grant *VideoGrant) *AccessToken

func (*AccessToken) SetIdentity

func (t *AccessToken) SetIdentity(identity string) *AccessToken

func (*AccessToken) SetMetadata

func (t *AccessToken) SetMetadata(md string) *AccessToken

func (*AccessToken) SetSha256 added in v0.7.2

func (t *AccessToken) SetSha256(sha string) *AccessToken

func (*AccessToken) SetValidFor

func (t *AccessToken) SetValidFor(duration time.Duration) *AccessToken

func (*AccessToken) ToJWT

func (t *AccessToken) ToJWT() (string, error)

type ClaimGrants

type ClaimGrants struct {
	Identity string      `json:"-"`
	Video    *VideoGrant `json:"video,omitempty"`
	// for verifying integrity of the message body
	Sha256   string `json:"sha256,omitempty"`
	Metadata string `json:"metadata,omitempty"`
}

type FileBasedKeyProvider

type FileBasedKeyProvider struct {
	// contains filtered or unexported fields
}

func NewFileBasedKeyProviderFromMap

func NewFileBasedKeyProviderFromMap(keys map[string]string) *FileBasedKeyProvider

func NewFileBasedKeyProviderFromReader

func NewFileBasedKeyProviderFromReader(r io.Reader) (p *FileBasedKeyProvider, err error)

func (*FileBasedKeyProvider) GetSecret

func (p *FileBasedKeyProvider) GetSecret(key string) string

func (*FileBasedKeyProvider) NumKeys

func (p *FileBasedKeyProvider) NumKeys() int

type KeyProvider

type KeyProvider interface {
	GetSecret(key string) string
	NumKeys() int
}

type TokenVerifier

type TokenVerifier interface {
	Identity() string
	Verify(key interface{}) (*ClaimGrants, error)
}

type VideoGrant

type VideoGrant struct {
	// actions on rooms
	RoomCreate bool `json:"roomCreate,omitempty"`
	RoomList   bool `json:"roomList,omitempty"`
	RoomRecord bool `json:"roomRecord,omitempty"`

	// actions on a particular room
	RoomAdmin bool   `json:"roomAdmin,omitempty"`
	RoomJoin  bool   `json:"roomJoin,omitempty"`
	Room      string `json:"room,omitempty"`

	// permissions within a room, if none of the permissions are set
	// it's interpreted as both are permissible
	CanPublish     *bool `json:"canPublish,omitempty"`
	CanSubscribe   *bool `json:"canSubscribe,omitempty"`
	CanPublishData *bool `json:"canPublishData,omitempty"`

	// used for recording
	Hidden bool `json:"hidden,omitempty"`
}

func (*VideoGrant) SetCanPublish added in v0.7.3

func (v *VideoGrant) SetCanPublish(val bool)

func (*VideoGrant) SetCanPublishData added in v0.7.3

func (v *VideoGrant) SetCanPublishData(val bool)

func (*VideoGrant) SetCanSubscribe added in v0.7.3

func (v *VideoGrant) SetCanSubscribe(val bool)

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL