kaoriJwt

package module
v0.0.0-...-1aee6c4 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2021 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckOldsToken

func CheckOldsToken(db *kaoriDatabase.NoSqlDb, email string) error

func ExtractToken

func ExtractToken(r *http.Request) string

func IsAuthorized

func IsAuthorized(perms []Permission, permsRequire ...Permission) bool

func TokenValid

func TokenValid(tokenString, secret string) error

func VerifyExpireDate

func VerifyExpireDate(exp int64) bool

func VerifyRefreshToken

func VerifyRefreshToken(db *kaoriDatabase.NoSqlDb, email, idRefresh string) bool

func VerifyToken

func VerifyToken(tokenString string, secret string) (*jwt.Token, error)

Types

type AccessPayload

type AccessPayload struct {
	Obj   *JWTAccessMetadata
	Token string
}

type JWTAccessMetadata

type JWTAccessMetadata struct {
	Iss        string
	Iat        int64
	Exp        int64
	Company    string
	Email      string
	Permission string
}

func ExtractAccessMetadata

func ExtractAccessMetadata(tokenString, secret string) (*JWTAccessMetadata, error)

func NewAccessToken

func NewAccessToken(addExpire int) *JWTAccessMetadata

func (*JWTAccessMetadata) GenerateToken

func (jm *JWTAccessMetadata) GenerateToken(jwtPass string) (string, error)

func (JWTAccessMetadata) GetPermission

func (jwt JWTAccessMetadata) GetPermission() (perms []Permission, err error)

type JWTRefreshMetadata

type JWTRefreshMetadata struct {
	RefreshId string
	Email     string
	Exp       int64
}

func ExtractRefreshMetadata

func ExtractRefreshMetadata(tokenString, secret string) (*JWTRefreshMetadata, error)

func NewRefreshToken

func NewRefreshToken(addExpire int) *JWTRefreshMetadata

func (*JWTRefreshMetadata) GenerateToken

func (jm *JWTRefreshMetadata) GenerateToken(refreshPass string) (string, error)

type JWTokenPair

type JWTokenPair struct {
	Access  AccessPayload
	Refresh RefreshPayload
}

func NewJWTokenPair

func NewJWTokenPair(accessExp, refreshExp int) *JWTokenPair

func (*JWTokenPair) GenerateTokenPair

func (tp *JWTokenPair) GenerateTokenPair(accessPass, refreshPass string) error

type Permission

type Permission string
const (
	UserPerm    Permission = "u"
	CreatorPerm Permission = "c"
	TesterPerm  Permission = "t"
	AdminPerm   Permission = "a"
)

func GetPermissionFromDB

func GetPermissionFromDB(db *kaoriDatabase.NoSqlDb, email string) (Permission, error)

func (Permission) ToString

func (p Permission) ToString() string

type RefreshPayload

type RefreshPayload struct {
	Obj   *JWTRefreshMetadata
	Token string
}

Jump to

Keyboard shortcuts

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