auth_module

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: May 2, 2024 License: Unlicense Imports: 7 Imported by: 0

README

AUTH module


Simple module to validate the request to the backend

  • this module can be integrated to all libraries internal for MecuateAstrophytum with minimal impact
  • this module uses JWT token lib
  • this module is intended to be used whithin GO version 18.1.x

latest

v0.1.2

install the module

go get github.com/Mecuate/auth_module

Description

provides method to validate a users jwt token based on the custom claims, determine user permissions on server service app and returns validation functions to the main app.

model type

type MecuateClaimsResponse struct {
	Email    string           `json:"email"`
	Realms   RealmPermissions `json:"realms"`
	Audience []string         `json:"audience"`
	Valid    bool             `json:"valid"`
	Lifetime string           `json:"lifetime"`
	Id       string           `json:"user_id"`
	Trace    string           `json:"trace_id"`
}

Example


authorized, claims := auth.Authorized(w, r)

bool_value := claims.Realms.Read().{service_name}
bool_value := claims.Realms.Create().{service_name}
bool_value := claims.Realms.Update().{service_name}
bool_value := claims.Realms.Delete().{service_name}

Documentation

Index

Constants

View Source
const (
	AuthHeader      = "Authorization"
	UserTokenHeader = "User-Token"
)

Variables

View Source
var AuthError error
View Source
var GuestTokenTarget string
View Source
var UserTokenTarget string
View Source
var Version versionType = "v1.0.2"

Functions

func Boolean added in v0.1.2

func Boolean(x string) bool

func DecodeUserToken added in v1.0.0

func DecodeUserToken(token string) (bool, bool)

func Headers added in v1.0.0

func Headers() []string

func ParseJSON added in v1.0.0

func ParseJSON(data string, model interface{}) error

func SetUpAuthReader added in v1.0.0

func SetUpAuthReader() error

Types

type EnvConfs

type EnvConfs struct {
	AuthSignKey  string `required:"true" split_words:"true"`
	GuestSignKey string `required:"true" split_words:"true"`
	UserTarget   string `required:"true" split_words:"true"`
	GuestTarget  string `required:"true" split_words:"true"`
}

type MecuateClaims added in v0.1.0

type MecuateClaims struct {
	Email  string `json:"email"`
	Realms RealmT `json:"realms"`
	jwt.RegisteredClaims
}

type MecuateClaimsResponse added in v0.1.0

type MecuateClaimsResponse struct {
	Email    string           `json:"email"`
	Realms   RealmPermissions `json:"realms"`
	Audience []string         `json:"audience"`
	Valid    bool             `json:"valid"`
	Lifetime string           `json:"lifetime"`
	Id       string           `json:"user_id"`
	Trace    string           `json:"trace_id"`
}

func Authorized

func Authorized(r *http.Request) (bool, MecuateClaimsResponse, error)

type OpenFILE added in v1.0.0

type OpenFILE struct {
	Filename  string
	DataModel interface{}
}

type RealmPermission added in v0.1.2

type RealmPermission struct {
	Apis    bool
	Media   bool
	Mecuate bool
}

type RealmPermissions added in v0.1.2

type RealmPermissions struct {
	R RealmT
}

func Permissions added in v0.1.2

func Permissions(R RealmT) *RealmPermissions

func (*RealmPermissions) Create added in v0.1.2

func (rp *RealmPermissions) Create() RealmPermission

func (*RealmPermissions) Delete added in v0.1.2

func (rp *RealmPermissions) Delete() RealmPermission

func (*RealmPermissions) Read added in v0.1.2

func (rp *RealmPermissions) Read() RealmPermission

func (*RealmPermissions) Update added in v0.1.2

func (rp *RealmPermissions) Update() RealmPermission

type RealmT added in v0.1.2

type RealmT struct {
	Apis    string `json:"apis"`
	Media   string `json:"media"`
	Mecuate string `json:"mecuate"`
}

type RecieverFunc

type RecieverFunc func(w http.ResponseWriter, r *http.Request)

Jump to

Keyboard shortcuts

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