Documentation
¶
Index ¶
- Constants
- type AuthN
- func (b *AuthN) LoginOrNew(ctx context.Context, input *AuthNInput) (*AuthNSessionOutput, error)
- func (b *AuthN) PassKeyGetChallenge(ctx context.Context) (*ChallengeOutput, error)
- func (b *AuthN) PassKeyVerifyAuthentication(ctx context.Context, input *AuthenticationCredentialInput) (*AuthNSessionOutput, error)
- func (b *AuthN) PassKeyVerifyRegistration(ctx context.Context, input *RegistrationCredentialInput) (*AuthNOutput, error)
- type AuthNInput
- type AuthNOutput
- type AuthNPK
- type AuthNSessionOutput
- type AuthenticationCredentialInput
- type AwardInput
- type AwardPayload
- type Blls
- type ChallengeOutput
- type CreateLogInput
- type LogOutput
- type LogPayload
- type Logbase
- type RegistrationCredentialInput
- type Session
- func (b *Session) AccessToken(ctx context.Context, input *SessionInput) (*SessionOutput, error)
- func (b *Session) Delete(ctx context.Context, sid util.ID) (*SuccessResponse[bool], error)
- func (b *Session) DeriveUserKey(ctx context.Context, uid util.ID, path string) ([]byte, error)
- func (b *Session) DisabledUser(ctx context.Context, uid util.ID) (*SuccessResponse[userInfo], error)
- func (b *Session) UpdateUserInfo(ctx context.Context, input *UpdateUserInput) (*UserInfo, error)
- func (b *Session) UserInfo(ctx context.Context, id *util.ID, cn string) (*UserInfo, error)
- func (b *Session) Verify(ctx context.Context, input *SessionInput) (*SessionOutput, error)
- type SessionInput
- type SessionOutput
- type SuccessResponse
- type UpdateLog
- type UpdateSpecialFieldInput
- type UpdateUserInput
- type UserInfo
- type UserKeyDerivationInput
- type WalletOutput
- type Walletbase
Constants ¶
View Source
const ( LogActionSysCreateUser = "sys.create.user" LogActionSysUpdateUser = "sys.update.user" LogActionSysUpdateGroup = "sys.update.group" LogActionSysUpdateCreation = "sys.update.creation" LogActionUserLogin = "user.login" LogActionUserAuthz = "user.authz" LogActionUserUpdate = "user.update" LogActionUserUpdateCN = "user.update.cn" LogActionUserLogout = "user.logout" LogActionUserCollect = "user.collect" LogActionUserFollow = "user.follow" LogActionUserSubscribe = "user.subscribe" LogActionUserSponsor = "user.sponsor" LogActionGroupCreate = "group.create" LogActionGroupUpdate = "group.update" LogActionGroupUpdateCN = "group.update.cn" LogActionGroupTransfer = "group.transfer" LogActionGroupDelete = "group.delete" LogActionGroupCreateUser = "group.create.user" LogActionGroupUpdateUser = "group.update.user" LogActionGroupAddMember = "group.add.member" LogActionGroupUpdateMember = "group.update.member" LogActionGroupRemoveMember = "group.remove.member" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthN ¶
type AuthN struct {
// contains filtered or unexported fields
}
func (*AuthN) LoginOrNew ¶
func (b *AuthN) LoginOrNew(ctx context.Context, input *AuthNInput) (*AuthNSessionOutput, error)
func (*AuthN) PassKeyGetChallenge ¶ added in v1.2.0
func (b *AuthN) PassKeyGetChallenge(ctx context.Context) (*ChallengeOutput, error)
func (*AuthN) PassKeyVerifyAuthentication ¶ added in v1.2.0
func (b *AuthN) PassKeyVerifyAuthentication(ctx context.Context, input *AuthenticationCredentialInput) (*AuthNSessionOutput, error)
func (*AuthN) PassKeyVerifyRegistration ¶ added in v1.2.0
func (b *AuthN) PassKeyVerifyRegistration(ctx context.Context, input *RegistrationCredentialInput) (*AuthNOutput, error)
type AuthNInput ¶
type AuthNInput struct {
Idp string `json:"idp" cbor:"idp"`
Aud string `json:"aud" cbor:"aud"`
Sub string `json:"sub" cbor:"sub"`
ExpiresIn uint `json:"expires_in" cbor:"expires_in"`
Scope []string `json:"scope" cbor:"scope"`
Ip string `json:"ip" cbor:"ip"`
DeviceID string `json:"device_id" cbor:"device_id"`
DeviceDesc string `json:"device_desc" cbor:"device_desc"`
Payload []byte `json:"payload" cbor:"payload"`
User UserInfo `json:"user" cbor:"user"`
CoAuthN *AuthNPK `json:"co_authn,omitempty" cbor:"co_authn,omitempty"`
}
type AuthNOutput ¶
type AuthNSessionOutput ¶ added in v0.2.0
type AuthNSessionOutput struct {
SID util.ID `json:"sid" cbor:"sid"`
UID *util.ID `json:"uid,omitempty" cbor:"uid,omitempty"`
Sub util.UUID `json:"sub" cbor:"sub"`
Session string `json:"session" cbor:"session"`
Name string `json:"name" cbor:"name"`
Picture string `json:"picture" cbor:"picture"`
UserCreatedAt int64 `json:"user_created_at" cbor:"user_created_at"`
}
type AuthenticationCredentialInput ¶ added in v1.2.0
type AuthenticationCredentialInput struct {
ID string `json:"id" cbor:"id"`
AuthenticatorData util.Bytes `json:"authenticator_data" cbor:"authenticator_data"`
ClientData util.Bytes `json:"client_data" cbor:"client_data"`
Signature util.Bytes `json:"signature" cbor:"signature"`
IP string `json:"ip" cbor:"ip"`
DeviceID string `json:"device_id" cbor:"device_id"`
DeviceDesc string `json:"device_desc" cbor:"device_desc"`
}
func (*AuthenticationCredentialInput) Validate ¶ added in v1.2.0
func (i *AuthenticationCredentialInput) Validate() error
type AwardInput ¶ added in v0.6.0
type AwardInput struct {
Payee util.ID `json:"payee" cbor:"payee"`
Amount int64 `json:"amount" cbor:"amount"`
Credits uint64 `json:"credits" cbor:"credits"`
Description string `json:"description,omitempty" cbor:"description,omitempty"`
Payload util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
}
type AwardPayload ¶ added in v0.6.0
type Blls ¶
type Blls struct {
AuthN *AuthN
Logbase *Logbase
Session *Session
Walletbase *Walletbase
}
Blls ...
type ChallengeOutput ¶ added in v1.2.0
type CreateLogInput ¶ added in v0.6.0
type CreateLogInput struct {
UID util.ID `json:"uid" cbor:"uid"`
GID util.ID `json:"gid" cbor:"gid"`
Action string `json:"action" cbor:"action"`
Status int8 `json:"status" cbor:"status"`
IP string `json:"ip" cbor:"ip"`
Payload util.Bytes `json:"payload" cbor:"payload"`
Tokens uint32 `json:"tokens" cbor:"tokens"`
}
type LogOutput ¶ added in v0.6.0
type LogOutput struct {
UID util.ID `json:"uid" cbor:"uid"`
ID util.ID `json:"id" cbor:"id"`
Status int8 `json:"status" cbor:"status"`
Action string `json:"action" cbor:"action"`
GID *util.ID `json:"gid,omitempty" cbor:"gid,omitempty"`
IP *string `json:"ip,omitempty" cbor:"ip,omitempty"`
Payload *util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
Tokens *uint32 `json:"tokens,omitempty" cbor:"tokens,omitempty"`
Error *string `json:"error,omitempty" cbor:"error,omitempty"`
}
type LogPayload ¶ added in v0.6.0
type Logbase ¶ added in v0.6.0
type Logbase struct {
// contains filtered or unexported fields
}
type RegistrationCredentialInput ¶ added in v1.2.0
type RegistrationCredentialInput struct {
ID string `json:"id" cbor:"id"`
DisplayName string `json:"display_name" cbor:"display_name"`
AuthenticatorData util.Bytes `json:"authenticator_data" cbor:"authenticator_data"`
ClientData util.Bytes `json:"client_data" cbor:"client_data"`
IP string `json:"ip" cbor:"ip"`
Locale string `json:"locale" cbor:"locale"`
UID *util.ID `json:"uid,omitempty" cbor:"uid,omitempty"`
}
func (*RegistrationCredentialInput) Validate ¶ added in v1.2.0
func (i *RegistrationCredentialInput) Validate() error
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) AccessToken ¶
func (b *Session) AccessToken(ctx context.Context, input *SessionInput) (*SessionOutput, error)
func (*Session) DeriveUserKey ¶ added in v1.2.2
func (*Session) DisabledUser ¶ added in v0.6.6
func (*Session) UpdateUserInfo ¶ added in v1.2.1
func (*Session) Verify ¶
func (b *Session) Verify(ctx context.Context, input *SessionInput) (*SessionOutput, error)
type SessionInput ¶
type SessionOutput ¶
type SessionOutput struct {
SID *util.ID `json:"sid,omitempty" cbor:"sid,omitempty"`
Sub *util.UUID `json:"sub,omitempty" cbor:"sub,omitempty"`
UID *util.ID `json:"uid,omitempty" cbor:"uid,omitempty"`
AccessToken string `json:"access_token,omitempty" cbor:"access_token,omitempty"`
IDToken string `json:"id_token,omitempty" cbor:"id_token,omitempty"`
ExpiresIn uint `json:"expires_in,omitempty" cbor:"expires_in,omitempty"`
}
type SuccessResponse ¶
type SuccessResponse[T any] struct { Result T `json:"result" cbor:"result"` }
type UpdateLog ¶ added in v0.6.0
type UpdateLog struct {
UID util.ID `json:"uid" cbor:"uid"`
ID util.ID `json:"id" cbor:"id"`
Status int8 `json:"status" cbor:"status"`
Payload *util.Bytes `json:"payload,omitempty" cbor:"payload,omitempty"`
Tokens *uint32 `json:"tokens,omitempty" cbor:"tokens,omitempty"`
Error *string `json:"error,omitempty" cbor:"error,omitempty"`
}
type UpdateSpecialFieldInput ¶ added in v0.6.6
type UpdateSpecialFieldInput struct {
ID util.ID `json:"id" cbor:"id"`
UpdatedAt int64 `json:"updated_at" cbor:"updated_at"`
Status *int8 `json:"status,omitempty" cbor:"status,omitempty"`
Rating *int8 `json:"rating,omitempty" cbor:"rating,omitempty"`
Kind *int8 `json:"kind,omitempty" cbor:"kind,omitempty"`
Email *string `json:"email,omitempty" cbor:"email,omitempty"`
Phone *string `json:"phone,omitempty" cbor:"phone,omitempty"`
}
type UpdateUserInput ¶ added in v0.2.0
type UpdateUserInput struct {
ID *util.ID `json:"id,omitempty" cbor:"id,omitempty"`
Name string `json:"name,omitempty" cbor:"name,omitempty" validate:"omitempty,gte=2,lte=64"`
Picture string `json:"picture,omitempty" cbor:"picture,omitempty" validate:"omitempty,http_url"`
}
func (*UpdateUserInput) Validate ¶ added in v1.2.1
func (i *UpdateUserInput) Validate() error
type UserInfo ¶
type UserInfo struct {
ID *util.ID `json:"id,omitempty" cbor:"id,omitempty"` // should not return to client
CN string `json:"cn" cbor:"cn"`
Name string `json:"name" cbor:"name"`
Locale string `json:"locale" cbor:"locale"`
Picture string `json:"picture" cbor:"picture"`
Status int8 `json:"status" cbor:"status"`
}
type UserKeyDerivationInput ¶ added in v1.2.2
type WalletOutput ¶ added in v0.6.0
type WalletOutput struct {
Sequence uint64 `json:"sequence" cbor:"sequence"`
Award int64 `json:"award" cbor:"award"`
Topup int64 `json:"topup" cbor:"topup"`
Income int64 `json:"income" cbor:"income"`
Credits uint64 `json:"credits" cbor:"credits"`
Level uint8 `json:"level" cbor:"level"`
Txn util.ID `json:"txn" cbor:"txn"`
}
func (*WalletOutput) Balance ¶ added in v0.6.0
func (w *WalletOutput) Balance() int64
func (*WalletOutput) SetLevel ¶ added in v0.6.0
func (w *WalletOutput) SetLevel()
type Walletbase ¶ added in v0.6.0
type Walletbase struct {
// contains filtered or unexported fields
}
func (*Walletbase) AwardRegistration ¶ added in v0.6.0
func (b *Walletbase) AwardRegistration(ctx context.Context, uid util.ID, input *AwardPayload) (*WalletOutput, error)
func (*Walletbase) Get ¶ added in v0.6.0
func (b *Walletbase) Get(ctx context.Context, uid util.ID) (*WalletOutput, error)
Click to show internal directories.
Click to hide internal directories.