Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package auth provides authentication and authorization capability
Index ¶
- Constants
 - Variables
 - func ContextWithAccount(ctx context.Context, account *Account) (context.Context, error)
 - func Expiry(ex time.Time) func(o *GenerateOptions)
 - func Metadata(md map[string]string) func(o *GenerateOptions)
 - func Roles(rs []*Role) func(o *GenerateOptions)
 - type Account
 - type Auth
 - type GenerateOption
 - type GenerateOptions
 - type Option
 - type Options
 - type Resource
 - type Role
 
Constants ¶
      View Source
      
  
const ( // MetadataKey is the key used when storing the account // in metadata MetadataKey = "auth-account" // CookieName is the name of the cookie which stores the // auth token CookieName = "micro-token" )
Variables ¶
      View Source
      
  
var (
	DefaultAuth = NewAuth()
)
    Functions ¶
func ContextWithAccount ¶
ContextWithAccount sets the account in the context
func Expiry ¶
func Expiry(ex time.Time) func(o *GenerateOptions)
Expiry for the generated account's token expires
func Metadata ¶
func Metadata(md map[string]string) func(o *GenerateOptions)
Metadata for the generated account
Types ¶
type Account ¶
type Account struct {
	// ID of the account (UUIDV4, email or username)
	Id string `json:"id"`
	// Token used to authenticate
	Token string `json:"token"`
	// Time of Account creation
	Created time.Time `json:"created"`
	// Time of Account expiry
	Expiry time.Time `json:"expiry"`
	// Roles associated with the Account
	Roles []*Role `json:"roles"`
	// Any other associated metadata
	Metadata map[string]string `json:"metadata"`
}
    Account provided by an auth provider
func AccountFromContext ¶
AccountFromContext gets the account from the context, which is set by the auth wrapper at the start of a call. If the account is not set, a nil account will be returned. The error is only returned when there was a problem retrieving an account
type Auth ¶
type Auth interface {
	// Init the auth package
	Init(opts ...Option) error
	// Options returns the options set
	Options() Options
	// Generate a new auth Account
	Generate(id string, opts ...GenerateOption) (*Account, error)
	// Revoke an authorization Account
	Revoke(token string) error
	// Verify an account token
	Verify(token string) (*Account, error)
	// String returns the implementation
	String() string
}
    Auth providers authentication and authorization
type GenerateOption ¶
type GenerateOption func(o *GenerateOptions)
type GenerateOptions ¶
type GenerateOptions struct {
	// Metadata associated with the account
	Metadata map[string]string
	// Roles/scopes associated with the account
	Roles []*Role
	//Expiry of the token
	Expiry time.Time
}
    func NewGenerateOptions ¶
func NewGenerateOptions(opts ...GenerateOption) GenerateOptions
NewGenerateOptions from a slice of options
type Option ¶
type Option func(o *Options)
type Options ¶
type Options struct {
	// Token is an auth token
	Token string
	// Public key base64 encoded
	PublicKey string
	// Private key base64 encoded
	PrivateKey string
	// Endpoints to exclude
	Exclude []string
	// Provider is an auth provider
	Provider provider.Provider
	// LoginURL is the relative url path where a user can login
	LoginURL string
}
     Click to show internal directories. 
   Click to hide internal directories.