Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Claims ¶
type Claims struct { jwt.StandardClaims UserID string `json:"id"` Nickname string `json:"nck"` Values map[string]interface{} `json:"vls,omitempty"` }
Claims represents custom claims for jwt authentication.
type Config ¶
type Config struct { // Space is the name of the space // where long-season is watching for macs. Space string // City is name of city, where // long-season is watching for macs. City string Debug bool Host string Port string DatabaseType string DatabasePath string JWTSecret string UpdateSecret string AppName string RefreshTime time.Duration SingleAddrTTL time.Duration }
Config represents configuration that is being used by server.
type Device ¶
type Device struct { DevicePublicData // OwnerID is id of user that owns this device. OwnerID string // MAC contains hashed MAC address of the device. MAC []byte }
type DevicePublicData ¶
type OneTimeCode ¶ added in v0.4.0
type OneTimeCode struct { // ID is unique id of one time code. ID string `json:"id,omitempty"` // Name is human readable name of one time code // provided by user. Name string `json:"name,omitempty"` // Secret is used to verify one time code. Secret string `json:"secret,omitempty"` }
OneTimeCode holds data stored in database for two factor verification with one time codes.
func (OneTimeCode) Method ¶ added in v0.4.0
func (o OneTimeCode) Method(userID string) TwoFactorMethod
Method is adapter of OneTimeCode for TwoFactorMethod type.
type Recovery ¶ added in v0.4.0
type Recovery struct { // ID is unique id of one time code. ID string `json:"id,omitempty"` // Name is human readable name of one time code // provided by user. Name string `json:"name,omitempty"` // Codes holds set with recovery codes. Codes *set.String `json:"codes,omitempty"` }
Recovery holds data stored in database for two factor verification with recovery codes.
func (Recovery) Method ¶ added in v0.4.0
func (r Recovery) Method(userID string) TwoFactorMethod
Method is adapter of RecoveryCodes for TwoFactorMethod type.
type TwoFactor ¶ added in v0.4.0
type TwoFactor struct { // OneTimeCodes is map of one time codes entry with // theirs IDs as maps keys. OneTimeCodes map[string]OneTimeCode `json:"oneTimeCodes,omitempty"` // RecoveryCodes is map of recovery codes entries with // theirs IDs as maps keys. RecoveryCodes map[string]Recovery `json:"recoveryCodes,omitempty"` }
TwoFactor holds two factor methods with data required to verify with one of the following methods.
type TwoFactorMethod ¶ added in v0.4.0
type TwoFactorMethod struct { // ID is unique identifier of given two factor method. ID string `json:"id"` // Name is human readable name given by user // to its two factor method. Name string `json:"name"` // Type is two factor type. Type TwoFactorType `json:"type"` // Locations is URI where given two factor method // is stored. It can be used to disable (delete) // given two factor method. Location string `json:"location"` }
TwoFactorMethod holds private data of enabled two factor methods for given user. It allows users to discover their two factor methods.
type TwoFactorType ¶ added in v0.4.0
type TwoFactorType string
TwoFactorType describes type of two factor for inspecting user's two factor enabled methods.
const ( // OneTimeCodes are time-based one time passwords. OneTimeCodes TwoFactorType = "totp" // RecoveryCodes are codes for one time use as additional // two factor method. RecoveryCodes TwoFactorType = "recovery codes" )
type User ¶
type User struct { UserPublicData // Password of User hashed with bcrypt algorithm. Password []byte // Private is flag for enabling private-mode that hides // user activity from others. Private bool }
User represents single user data stored in storage.
type UserPublicData ¶
type UserPublicData struct { // ID unique to every user. ID string `json:"id"` // Nickname represents name that will be exposed to public, // to inform people who is in the hackerspace. Nickname string `json:"nickname"` // Online indicates if player is currently in the hackerspace. Online bool `json:"online"` }
UserPublicData is subset of User containing only data that can be shown publicly to everybody that will interact with API or website.