berauth

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnauthorized = errors.New("не авторизован")
)

Functions

func GetServiceKey

func GetServiceKey(ctx context.Context) (string, error)

GetServiceKey возвращает сервисный ключ из контекста или ошибку ErrMissingServiceKey.

func HasBerlogaJWT

func HasBerlogaJWT(ctx context.Context) bool

HasBerlogaJWT сообщает имеется ли успешная аутентификация BerlogaJWT в контексте.

func HasServiceKey

func HasServiceKey(ctx context.Context) bool

HasServiceKey сообщает имеется ли успешная аутентификация сервисным ключом в контексте.

func HasTalentOAuth

func HasTalentOAuth(ctx context.Context) bool

func SetPlayer

func SetPlayer(ctx context.Context, player Player) context.Context

SetPlayer создает контекст с учетными данными игрока.

func SetServiceKey

func SetServiceKey(ctx context.Context, key string) context.Context

SetServiceKey создает контекст авторизованный аутентификатором ServiceKey.

func SetUser

func SetUser(ctx context.Context, user User) context.Context

Types

type AuthType

type AuthType string
var (
	ErrMissingBerlogaJWT = errors.New("отсутствуют учетные данные BerlogaJWT")

	AuthBerlogaJWT AuthType = "BerlogaJWT"
)
var (
	ErrMissingServiceKey = errors.New("не установлен сервисный ключ")

	AuthServiceKey AuthType = "ServiceKey"
)
var (
	ErrMissingTalentOAuth = errors.New("отсутствуют учетные данные TalentOAuth")

	AuthTalentOAuth AuthType = "TalentOAuth"
)
var Unauthenticated AuthType = ""

func GetAuthType

func GetAuthType(ctx context.Context) AuthType

AuthType возвращает текущий тип аутентификации. Возможные значения:

  • Unauthenticated
  • AuthTalentOAuth
  • AuthBerlogaJWT
  • AuthServiceKey

type Authenticator

type Authenticator interface {
	Auth(ctx context.Context, credentials string) (context.Context, error)
}

func BerlogaJWT

func BerlogaJWT(jwkset jwk.Set) Authenticator

BerlogaJWT создает JWT аутентификатор на основе JWKSet.

func ServiceKey

func ServiceKey(key string) Authenticator

ServiceKey создает аутентификатор по сервисному ключу Берлоги.

func TalentOAuth

func TalentOAuth(jwkset jwk.Set) Authenticator

type CredentialsAuthError

type CredentialsAuthError struct {
	Err error
}

Предоставленные учетные данные не прошли аутентификацию.

func (*CredentialsAuthError) Error

func (e *CredentialsAuthError) Error() string

type Player

type Player struct {
	Token         string
	JWT           jwt.Token
	ApplicationID uuid.UUID
	PlayerID      uuid.UUID
}

func GetPlayer

func GetPlayer(ctx context.Context) (Player, error)

GetPlayer возвращает учетные данные игрока из контекста или ошибку ErrMissingBerlogaJWT.

type User

type User struct {
	Token string
	JWT   jwt.Token
	ID    int
}

func GetUser

func GetUser(ctx context.Context) (User, error)

Jump to

Keyboard shortcuts

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