auth

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2020 License: MIT Imports: 10 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// DatastoreAuthorizations collection AUTHORIZATION
	DatastoreAuthorizations string = "AUTHORIZATIONS"

	// AuthTypeJWT constant jwt
	AuthTypeJWT = "jwt"
	// AuthTypeSlack constant salack
	AuthTypeSlack = "slack"
)

Variables

This section is empty.

Functions

func CreateAuthorization added in v0.0.4

func CreateAuthorization(ctx context.Context, auth *Authorization) error

CreateAuthorization creates all data needed for the OAuth fu

func CreateJWTToken added in v0.11.0

func CreateJWTToken(secret, realm, clientID, userID, scope string, duration int64) (string, error)

CreateJWTToken creates a token that can be used for JWT authentication / authorization

func GetSecureJWTMiddleware

func GetSecureJWTMiddleware(realm, secretKey string) (*jwt.GinJWTMiddleware, error)

GetSecureJWTMiddleware instantiates a JWT middleware and all the necessary handlers

func GetToken added in v0.0.4

func GetToken(ctx context.Context, clientID, authType string) (string, error)

GetToken returns the oauth token of the workspace integration

func IdentityHandler

func IdentityHandler(c *gin.Context) interface{}

IdentityHandler returns the Client structure

func PayloadMappingHandler

func PayloadMappingHandler(data interface{}) jwt.MapClaims

PayloadMappingHandler extracts the client_id, user_id and scope of the request

func ScopeAuthorizationHandler

func ScopeAuthorizationHandler(data interface{}, c *gin.Context) bool

ScopeAuthorizationHandler checks for required scopes

Types

type Authorization

type Authorization struct {
	ClientID  string `json:"client_id" binding:"required"` // UNIQUE
	Name      string `json:"name"`                         // name of the domain, realm, tennant etc
	Token     string `json:"token" binding:"required"`
	TokenType string `json:"token_type" binding:"required"` // user,app,bot
	UserID    string `json:"user_id"`                       // depends on TokenType. UserID could equal ClientID or BotUSerID in Slack
	Scope     string `json:"scope"`                         // a comma separated list of scopes, see below
	Expires   int64  `json:"expires"`                       // 0 = never
	// internal
	AuthType string `json:"-"` // currently: jwt, slack
	Created  int64  `json:"-"`
	Updated  int64  `json:"-"`
}

Authorization represents a user, app or bot and its permissions

func GetAuthorization added in v0.0.4

func GetAuthorization(ctx context.Context, clientID, authType string) (*Authorization, error)

GetAuthorization looks for an authorization

type Client

type Client struct {
	ClientID string `json:"client_id"`
	UserID   string `json:"user_id"`
	Scope    string `json:"scope"`
}

Client represents the claim of the client calling the API

Jump to

Keyboard shortcuts

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