Documentation
¶
Index ¶
- Variables
- type AppIdentityProvider
- type Application
- type ApplicationForm
- type ApplicationFormApp
- type ApplicationKeysForm
- type AuthorizeForm
- type AuthorizeLinkForm
- type AuthorizeLog
- type AuthorizeResultForm
- type AuthorizeResultResponse
- type AuthorizeUserAgent
- type AuthorizeUserIP
- type BcryptEncryptor
- type ChangePasswordForm
- type ChangePasswordStartForm
- type ChangePasswordTokenSource
- type ChangePasswordVerifyForm
- type CryptConfig
- type CustomValidator
- type ErrorInterface
- type GeneralError
- type JwtClaim
- type LoginPageForm
- type MfaAddForm
- type MfaApplicationForm
- type MfaApplicationProviderForm
- type MfaAuthenticator
- type MfaChallengeForm
- type MfaConnection
- type MfaListForm
- type MfaProvider
- type MfaRemoveForm
- type MfaUserProvider
- type MfaVerifyForm
- type Oauth2CallBackForm
- type Oauth2CallBackResponse
- type Oauth2ConsentForm
- type Oauth2ConsentSubmitForm
- type Oauth2IntrospectForm
- type Oauth2LoginForm
- type Oauth2LoginSubmitForm
- type Oauth2LogoutForm
- type Oauth2SignUpForm
- type Oauth2TokenIntrospection
- type OneTimeToken
- type OneTimeTokenSettings
- type PasswordLessStartForm
- type PasswordLessVerifyForm
- type PasswordSettings
- type SocialSettings
- type Space
- type SpaceForm
- type User
- type UserIdentity
- type UserIdentitySocial
- type UserMfaToken
Constants ¶
This section is empty.
Variables ¶
var ( PasswordBcryptCostDefault = 8 PasswordMinDefault = 4 PasswordMaxDefault = 30 PasswordRequireNumberDefault = true PasswordRequireUpperDefault = true PasswordRequireSpecialDefault = false PasswordTokenLengthDefault = 128 PasswordTokenTTLDefault = 3600 AppIdentityProviderTypePassword = "password" AppIdentityProviderTypeSocial = "social" AppIdentityProviderNameDefault = "initial" AppIdentityProviderNameFacebook = "facebook" AppIdentityProviderNameTwitch = "twitch" AppIdentityProviderNameGoogle = "google" AppIdentityProviderNameVk = "vk" AppIdentityProviderDisplayNameDefault = "Initial connection" AppIdentityProviderDisplayNameFacebook = "Facebook" AppIdentityProviderDisplayNameTwitch = "Twitch" AppIdentityProviderDisplayNameGoogle = "Google" AppIdentityProviderDisplayNameVk = "VKontakte" )
var ( ErrorUnknownError = "Unknown error" ErrorInvalidRequestParameters = "Invalid request parameters" ErrorRequiredField = "This is required field" ErrorAddAuthLog = "Unable to add auth log" ErrorCreateCookie = "Unable to create cookie" ErrorCreateUser = "Unable to create user" ErrorUpdateUser = "Unable to update user" ErrorCreateUserIdentity = "Unable to create user identity" ErrorLoginIncorrect = "Login is incorrect" ErrorCryptPassword = "Unable to crypt password" ErrorUnableChangePassword = "Unable to change password" ErrorUnableCreateOttSettings = "Unable create ott settings" ErrorPasswordIncorrect = "Password is incorrect" ErrorPasswordRepeat = "Password repeat is not equal to password" ErrorUnableValidatePassword = "Unable to validate password" ErrorClientIdIncorrect = "Client ID is incorrect" ErrorConnectionIncorrect = "Name is incorrect" ErrorCannotCreateToken = "Cannot create token" ErrorCannotUseToken = "Cannot use this token" ErrorRedirectUriIncorrect = "Redirect URI is incorrect" ErrorCaptchaRequired = "Captcha required" ErrorCaptchaIncorrect = "Captcha is incorrect" ErrorAuthTemporaryLocked = "Temporary locked" ErrorProviderIdIncorrect = "Provider ID is incorrect" ErrorGetSocialData = "Unable to load social data" ErrorGetSocialSettings = "Unable to load social settings" ErrorMfaRequired = "MFA required" ErrorMfaClientAdd = "Unable to add MFA" ErrorMfaCodeInvalid = "Invalid MFA code" ErrorLoginChallenge = "Invalid login challenge" ErrorAppIdIncorrect = "Application ID is incorrect" ErrorMfaClientRemove = "Unable to remove MFA" )
Functions ¶
This section is empty.
Types ¶
type AppIdentityProvider ¶
type AppIdentityProvider struct {
// ID is the id of provider.
ID bson.ObjectId `bson:"_id" json:"id"`
// ApplicationID is the id of application.
ApplicationID bson.ObjectId `bson:"app_id" json:"application_id"`
// DisplayName is the human-readable string name of the provider.
DisplayName string `bson:"display_name" json:"display_name"`
// Name is the service name used in authorization requests. It must not contain spaces and special characters.
Name string `bson:"name" json:"name"`
// Type defines the type of provider, such as a password(password) or social authorization(social).
Type string `bson:"type" json:"type"`
// ClientID is the client identifier on external network. For example, the application ID in Facebook.
ClientID string `bson:"client_id" json:"client_id"`
// ClientSecret is the secret string of the client on external network.
ClientSecret string `bson:"client_secret" json:"client_secret"`
// ClientScopes is the scopes list for external network.
ClientScopes []string `bson:"client_scopes" json:"client_scopes"`
// EndpointAuthURL is the authentication url on external network.
EndpointAuthURL string `bson:"endpoint_auth_url" json:"endpoint_auth_url"`
// EndpointTokenURL is the endpoint url on external network for exchange authentication code to the tokens.
EndpointTokenURL string `bson:"endpoint_token_url" json:"endpoint_token_url"`
// EndpointUserInfoURL is the endpoint on external network for to get user information.
EndpointUserInfoURL string `bson:"endpoint_userinfo_url" json:"endpoint_userinfo_url"`
}
AppIdentityProvider describes a table for storing the basic properties of the application provider.
func (*AppIdentityProvider) MarshalLogObject ¶
func (ipc *AppIdentityProvider) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Application ¶
type Application struct {
// ID is the id for application
ID bson.ObjectId `bson:"_id" json:"id"`
// SpaceId is the identifier of the space to which the application belongs.
SpaceId bson.ObjectId `bson:"space_id" json:"space_id"`
// Name is the human-readable string name of the application to be presented to the end-user during authorization.
Name string `bson:"name" json:"name" validate:"required"`
// Description is the human-readable string description of the application and not be presented to the users.
Description string `bson:"description" json:"description"`
// IsActive allows you to enable or disable the application for authorization.
IsActive bool `bson:"is_active" json:"is_active"`
// CreatedAt returns the timestamp of the application creation.
CreatedAt time.Time `bson:"created_at" json:"-"`
// UpdatedAt returns the timestamp of the last update.
UpdatedAt time.Time `bson:"updated_at" json:"-"`
// AuthSecret is a secret string with which the application checks the authentication code and
// exchanges it for an access token.
AuthSecret string `bson:"auth_secret" json:"auth_secret" validate:"required"`
// AuthRedirectUrls is an array of allowed redirect urls for the client.
AuthRedirectUrls []string `bson:"auth_redirect_urls" json:"auth_redirect_urls" validate:"required"`
// If this option is set, then users from other applications (in space) will be able to log in to this application.
HasSharedUsers bool `bson:"has_shared_users" json:"has_shared_users"`
// PasswordSettings contains settings for valid password criteria.
PasswordSettings *PasswordSettings `bson:"password_settings" json:"password_settings"`
// OneTimeTokenSettings contains settings for storing one-time application tokens.
OneTimeTokenSettings *OneTimeTokenSettings `bson:"ott_settings" json:"ott_settings"`
// IdentityProviders contains a list of valid authorization providers for the application, for example using a
// local database, an external social authentication service (facebook, google and etc), SAML, and others.
IdentityProviders []*AppIdentityProvider `bson:"identity_providers" json:"identity_providers"`
}
Application describes a table for storing the basic properties and settings of the authorization application.
func (*Application) MarshalLogObject ¶
func (a *Application) MarshalLogObject(enc zapcore.ObjectEncoder) error
type ApplicationForm ¶
type ApplicationForm struct {
SpaceId bson.ObjectId `json:"space_id"` // unique space identifier
Application *ApplicationFormApp `json:"application" validate:"required"` // application data
}
func (*ApplicationForm) MarshalLogObject ¶
func (a *ApplicationForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type ApplicationFormApp ¶
type ApplicationFormApp struct {
Name string `bson:"name" json:"name" validate:"required"`
Description string `bson:"description" json:"description"`
IsActive bool `bson:"is_active" json:"is_active"`
AuthRedirectUrls []string `bson:"auth_redirect_urls" json:"auth_redirect_urls" validate:"required"`
}
func (*ApplicationFormApp) MarshalLogObject ¶
func (a *ApplicationFormApp) MarshalLogObject(enc zapcore.ObjectEncoder) error
type ApplicationKeysForm ¶
type ApplicationKeysForm struct {
ApplicationId string `json:"application_id" validate:"required"` // application id
Algorithm string `json:"algorithm" validate:"required"` // algorithm name (HS256, HS512, RS256, ECDSA)
}
func (*ApplicationKeysForm) MarshalLogObject ¶
func (a *ApplicationKeysForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type AuthorizeForm ¶
type AuthorizeForm struct {
// ClientID is the id of the application.
ClientID string `query:"client_id" form:"client_id" json:"client_id" validate:"required"`
// Connection is the name of identity provider (see AppIdentityProvider) and contains name of social network.
Connection string `query:"connection" form:"connection" json:"connection" validate:"required"`
// RedirectUri is the url for redirection the user after login.
RedirectUri string `query:"redirect_uri" form:"redirect_uri" json:"redirect_uri"`
// State is a data line that the application specified before authorization.
State string `query:"state" form:"state" json:"state"`
}
AuthorizeForm contains form fields for requesting a social authorization form.
func (*AuthorizeForm) MarshalLogObject ¶
func (a *AuthorizeForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type AuthorizeLinkForm ¶
type AuthorizeLinkForm struct {
// Challenge is the code of the oauth2 login challenge. This code to generates of the Hydra service.
Challenge string `query:"challenge" form:"challenge" json:"challenge" validate:"required"`
// ClientID is the id of the application.
ClientID string `query:"client_id" form:"client_id" json:"client_id" validate:"required"`
// Code is a one-time token created as a result of finding an account with the same mail in the password provider.
Code string `query:"code" form:"code" json:"code" validate:"required"`
// The Action determines the type of action that needs to be made on requesting a bunch of accounts.
// If the `link` is transmitted, then an attempt will be made to bundle a social account with an identifier by
// login and password. If transferred to `new`, then a new account will be created.
Action string `query:"action" form:"action" json:"action" validate:"required"`
// Password is the user's password if he wants to link the social account and with the ID by login and password
// (if during the authorization process an account containing the same mail as on the social network was found).
// If linking is not needed, the parameter is not passed or is empty.
Password string `query:"password" form:"password" json:"password"`
}
func (*AuthorizeLinkForm) MarshalLogObject ¶
func (a *AuthorizeLinkForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type AuthorizeLog ¶
type AuthorizeLog struct {
// ID is the record id.
ID bson.ObjectId `bson:"_id" json:"id"`
// UserID is the user id.
UserID bson.ObjectId `bson:"user_id" json:"user_id"`
// UserAgentId is the user agent id.
UserAgentId bson.ObjectId `bson:"useragent_id" json:"useragent_id"`
// IpId is the ip id.
IpId bson.ObjectId `bson:"ip_id" json:"ip_id"`
}
AuthorizeLog describes a table for storing the user authorizations log.
type AuthorizeResultForm ¶
type AuthorizeResultForm struct {
// Code is the oauth2 authorization code for exchange to the tokens.
Code string `query:"code" form:"code" json:"code" validate:"required"`
// State is a data line that the application specified before authorization.
State string `query:"state" form:"state" json:"state" validate:"required"`
}
AuthorizeResultForm contains form fields for validation result of social authorization.
func (*AuthorizeResultForm) MarshalLogObject ¶
func (a *AuthorizeResultForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type AuthorizeResultResponse ¶
type AuthorizeResultResponse struct {
// Result is the result of social authorization. Result may by `success` or `error`.
Result string `json:"result"`
// Payload contains information for further authorization in Auth1.
// Typically, this is a one-time token to complete the authorization process (see Oauth2LoginSubmitForm).
Payload interface{} `json:"payload"`
}
AuthorizeResultForm contains the response fields for social authorization page.
type AuthorizeUserAgent ¶
type AuthorizeUserAgent struct {
// ID is the record id.
ID bson.ObjectId `bson:"_id" json:"id"`
// Value is the user agent.
Value string `bson:"value" json:"value"`
}
AuthorizeLog describes a table for storing the user authorizations agents.
type AuthorizeUserIP ¶
type AuthorizeUserIP struct {
// ID is the record id.
ID bson.ObjectId `bson:"_id" json:"id"`
// Value is the ip address.
Value string `bson:"value" json:"value"`
}
AuthorizeLog describes a table for storing the user authorizations ips.
type BcryptEncryptor ¶
type BcryptEncryptor struct {
*CryptConfig
}
BcryptEncryptor is the bcrypt encryptor service
func NewBcryptEncryptor ¶
func NewBcryptEncryptor(config *CryptConfig) *BcryptEncryptor
NewBcryptEncryptor return new bcrypt encryptor service
type ChangePasswordForm ¶
type ChangePasswordForm struct {
// ClientID is the application id
ClientID string `json:"client_id" query:"client_id" validate:"required"`
}
ChangePasswordForm contains form fields for requesting a password change.
func (*ChangePasswordForm) MarshalLogObject ¶
func (a *ChangePasswordForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type ChangePasswordStartForm ¶
type ChangePasswordStartForm struct {
// ClientID is the application id
ClientID string `json:"client_id" form:"client_id" validate:"required"`
// Email is the email address of the user to which the account is registered.
Email string `json:"email" form:"email" validate:"required,email"`
}
ChangePasswordStartForm contains the form fields for starting an operation for changing the password.
func (*ChangePasswordStartForm) MarshalLogObject ¶
func (a *ChangePasswordStartForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type ChangePasswordTokenSource ¶
type ChangePasswordTokenSource struct {
Email string
}
type ChangePasswordVerifyForm ¶
type ChangePasswordVerifyForm struct {
// ClientID is the application id
ClientID string `form:"client_id" json:"client_id" validate:"required"`
// Token is a one-time token from a password change letter.
Token string `form:"token" json:"token" validate:"required"`
// Password is a new user password.
Password string `form:"password" json:"password" validate:"required"`
// PasswordRepeat is a confirmation of a new user password.
PasswordRepeat string `form:"password_repeat" json:"password_repeat" validate:"required"`
}
ChangePasswordVerifyForm contains form fields for completing a password change.
func (*ChangePasswordVerifyForm) MarshalLogObject ¶
func (a *ChangePasswordVerifyForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type CryptConfig ¶
type CryptConfig struct {
Cost int
}
CryptConfig is configuration parameters for the bcrypt encryptor
type CustomValidator ¶
func (*CustomValidator) Validate ¶
func (cv *CustomValidator) Validate(i interface{}) error
type ErrorInterface ¶
type ErrorInterface interface {
// GetHttpCode return the http code of the error.
GetHttpCode() int
// GetCode return code of the error.
GetCode() string
// GetMessage return message of the error.
GetMessage() string
// Error return original error.
Error() string
}
ErrorInterface defines basic methods for application errors.
type GeneralError ¶
type GeneralError struct {
// Code is the error code.
Code string `json:"error,omitempty"`
// HttpCode is the code for http response.
HttpCode int `json:"-"`
// Message is the human-readable string of error message.
Message string `json:"error_message,omitempty"`
// Error contains original error.
Err error `json:"-"`
}
GeneralError is the basic type of application errors that are used in managers and processed in controllers to generate http responses.
func (*GeneralError) Error ¶
func (e *GeneralError) Error() string
type JwtClaim ¶
type JwtClaim struct {
UserId bson.ObjectId `json:"user_id"`
AppId bson.ObjectId `json:"app_id"`
Email string `json:"email"`
EmailConfirmed bool `json:"email_confirmed"`
Nickname string `json:"nickname"`
jwt.StandardClaims
}
JwtClaim is deprecated and will be removed.
type LoginPageForm ¶
type LoginPageForm struct {
// ClientID is the id of the application.
ClientID string `form:"client_id" query:"client_id"`
// RedirectUri is the url for redirection the user after login.
RedirectUri string `form:"redirect_uri" query:"redirect_uri"`
// State is a data line that the application specified before authorization.
State string `form:"state" query:"state"`
// Scope is a list of scopes that the user has taken.
Scopes string `form:"scopes" query:"scopes"`
}
LoginPageForm contains fields for show authorization and registration form.
type MfaAddForm ¶
type MfaAddForm struct {
// ClientID is the application id
ClientId string `json:"client_id" form:"client_id" validate:"required"`
// ProviderId is the id of the mfa provider.
ProviderId string `json:"provider_id" form:"provider_id" validate:"required"`
// Code is the string of one-time code.
Code string `json:"code" form:"code"`
// PhoneNumber is the phone number for which the provider will be associated.
PhoneNumber string `json:"phone_number" form:"phone_number"`
}
MfaVerifyForm contains form fields for requesting to link of mfa provider.
func (*MfaAddForm) MarshalLogObject ¶
func (m *MfaAddForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type MfaApplicationForm ¶
type MfaApplicationForm struct {
// AppId is the application id.
AppId bson.ObjectId `json:"app_id" validate:"required"`
// MfaProvider is the MFA provider.
MfaProvider *MfaApplicationProviderForm `json:"mfa_provider" validate:"required"`
}
MfaApplicationForm contains form fields for requesting to add of mfa provider.
func (*MfaApplicationForm) MarshalLogObject ¶
func (m *MfaApplicationForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type MfaApplicationProviderForm ¶
type MfaApplicationProviderForm struct {
// Name is the provider name.
Name string `bson:"name" json:"name" validate:"required"`
// Channel is the channel of delivery code.
Channel string `bson:"channel" json:"channel"`
// Type is the type of provider (otp, sms).
Type string `bson:"type" json:"type"`
}
MfaApplicationProviderForm contains form fields for the mfa provider.
func (*MfaApplicationProviderForm) MarshalLogObject ¶
func (m *MfaApplicationProviderForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type MfaAuthenticator ¶
type MfaChallengeForm ¶
type MfaChallengeForm struct {
// ClientID is the application id.
ClientId string `json:"client_id" form:"client_id" validate:"required"`
// Connection is the connection name of the application identity provider.
Connection string `json:"connection" form:"connection" validate:"required"`
// Token is the one-time token for mfa connection.
Token string `json:"mfa_token" form:"mfa_token" validate:"required"`
// Type is the type of mfa challenge (otp, sms).
Type string `json:"challenge_type" form:"challenge_type"`
}
MfaChallengeForm contains form fields for requesting a mfa challenge.
func (*MfaChallengeForm) MarshalLogObject ¶
func (m *MfaChallengeForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type MfaConnection ¶
type MfaConnection struct {
// Name is the name of connection.
Name string `bson:"name" json:"name"`
// Type is the type of provider (otp, sms).
Type string `bson:"type" json:"type"`
// Channel is the channel of delivery code.
Channel string `bson:"channel" json:"channel"`
}
MfaConnection contains property of mfa provider for showing to the user.
type MfaListForm ¶
type MfaListForm struct {
// ClientID is the application id
ClientId string `json:"client_id" form:"client_id" validate:"required"`
}
MfaListForm contains form fields for requesting to list of mfa providers.
type MfaProvider ¶
type MfaProvider struct {
// ID is the id of provider.
ID bson.ObjectId `bson:"_id" json:"id"`
// AppID is the id of the application.
AppID bson.ObjectId `bson:"app_id" json:"app_id"`
// Name is a human-readable name of provider.
Name string `bson:"name" json:"name"`
// Type is the type of provider (otp, sms).
Type string `bson:"type" json:"type"`
// Channel is the channel of delivery code.
Channel string `bson:"channel" json:"channel"`
}
MfaProvider describes of MFA provider.
func (*MfaProvider) MarshalLogObject ¶
func (m *MfaProvider) MarshalLogObject(enc zapcore.ObjectEncoder) error
type MfaRemoveForm ¶
type MfaRemoveForm struct {
// ClientID is the application id
ClientId string `json:"client_id" form:"client_id" validate:"required"`
// ProviderId is the id of the mfa provider.
ProviderId string `json:"provider_id" form:"provider_id" validate:"required"`
}
MfaRemoveForm contains form fields for requesting to remove of mfa provider.
type MfaUserProvider ¶
type MfaUserProvider struct {
// UserID is the id of the user.
UserID bson.ObjectId `bson:"user_id" json:"user_id"`
// ProviderID is the id of the provider.
ProviderID bson.ObjectId `bson:"provider_id" json:"provider_id"`
}
MfaUserProvider creates a connection between the MFA provider and the user.
type MfaVerifyForm ¶
type MfaVerifyForm struct {
// ClientID is the application id.
ClientId string `json:"client_id" form:"client_id" validate:"required"`
// ProviderId is the id of the mfa provider.
ProviderId string `json:"provider_id" form:"provider_id" validate:"required"`
// Token is the one-time token of mfa challenge.
Token string `json:"mfa_token" form:"token" validate:"required"`
// Code is the string of one-time code.
Code string `json:"code" form:"code"`
}
MfaVerifyForm contains form fields for requesting to verify mfa challenge.
func (*MfaVerifyForm) MarshalLogObject ¶
func (m *MfaVerifyForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2CallBackForm ¶
type Oauth2CallBackForm struct {
// Code is the oauth2 authorization code for exchange to the tokens.
Code string `query:"code" form:"code" validate:"required"`
// State is a data line that the application specified before registration or authorization.
State string `query:"state" form:"state" validate:"required"`
// Scope is a list of scopes that the user has taken.
Scope string `query:"scope" form:"scope" validate:"required"`
}
Oauth2CallBackForm contains form fields for request oauth2 callback process.
func (*Oauth2CallBackForm) MarshalLogObject ¶
func (a *Oauth2CallBackForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2CallBackResponse ¶
type Oauth2CallBackResponse struct {
// Success is the result of the exchange of code. If true, the code was successfully exchanged for tokens.
Success bool `json:"success"`
// ErrorMessage is the human-readable string with error message if code was unsuccessfully exchanged.
ErrorMessage string `json:"error_message,omitempty"`
// AccessToken is the access token for authorize user in the application.
AccessToken string `json:"access_token,omitempty"`
// IdToken is the openid token for authorize user in the application.
IdToken string `json:"id_token,omitempty"`
// ExpiresIn is the timestamp of expiration the token.
ExpiresIn int `json:"expires_in,omitempty"`
}
Oauth2CallBackResponse contains the response fields for the callback result page.
type Oauth2ConsentForm ¶
type Oauth2ConsentForm struct {
// Challenge is the code of the oauth2 consent challenge. This code to generates of the Hydra service.
Challenge string `query:"consent_challenge" form:"consent_challenge" validate:"required"`
}
Oauth2ConsentForm contains form fields for request of consent.
func (*Oauth2ConsentForm) MarshalLogObject ¶
func (a *Oauth2ConsentForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2ConsentSubmitForm ¶
type Oauth2ConsentSubmitForm struct {
// Challenge is the code of the oauth2 consent challenge. This code to generates of the Hydra service.
Challenge string `query:"challenge" form:"challenge" validate:"required"`
// Scope is a list of scopes that the user has taken.
Scope []string `query:"scope" form:"scope" validate:"required"`
}
Oauth2ConsentSubmitForm contains form fields for submit consent form.
type Oauth2IntrospectForm ¶
type Oauth2IntrospectForm struct {
// ClientID is the id of the application.
ClientID string `query:"client_id" form:"client_id" validate:"required"`
// Secret is the authorization secret of the application.
Secret string `query:"secret" form:"secret" validate:"required"`
// Token is the access token.
Token string `query:"token" form:"token" validate:"required"`
}
Oauth2IntrospectForm contains form fields for request of the introspect access token.
func (*Oauth2IntrospectForm) MarshalLogObject ¶
func (a *Oauth2IntrospectForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2LoginForm ¶
type Oauth2LoginForm struct {
// Challenge is the code of the oauth2 login challenge. This code to generates of the Hydra service.
Challenge string `query:"login_challenge" form:"login_challenge" validate:"required"`
}
Oauth2LoginForm contains form fields for requesting a login form.
func (*Oauth2LoginForm) MarshalLogObject ¶
func (a *Oauth2LoginForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2LoginSubmitForm ¶
type Oauth2LoginSubmitForm struct {
// Challenge is the code of the oauth2 login challenge. This code to generates of the Hydra service.
Challenge string `query:"challenge" form:"challenge" validate:"required"`
// Email is the email address of user for login request.
Email string `query:"email" form:"email"`
// Password is the password string of user for login request.
Password string `query:"password" form:"password"`
// PreviousLogin is the previous user login, which was detected in the authorization session and
// the user selected login through it (without asking for a password).
PreviousLogin string `query:"previous_login" form:"previous_login"`
// Token is the one-time token for authorize user without password.
Token string `query:"token" form:"token"`
// Remember is the option for the save user session in the cookie.
Remember bool `query:"remember" form:"remember"`
}
Oauth2LoginSubmitForm contains form fields for submit login form.
func (*Oauth2LoginSubmitForm) MarshalLogObject ¶
func (a *Oauth2LoginSubmitForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2LogoutForm ¶
type Oauth2LogoutForm struct {
// RedirectUri is the url for redirection the user after logout process.
RedirectUri string `query:"redirect_uri"`
}
Oauth2LogoutForm contains form fields for requesting a logout form.
type Oauth2SignUpForm ¶
type Oauth2SignUpForm struct {
// Challenge is the code of the oauth2 login challenge. This code to generates of the Hydra service.
Challenge string `query:"challenge" form:"challenge" validate:"required"`
// Email is the email address of user for the registration.
Email string `query:"email" form:"email" validate:"required"`
// Password is the password string of user for the registration.
Password string `query:"password" form:"password" validate:"required"`
// Remember is the option for the save user session in the cookie.
Remember bool `query:"remember" form:"remember"`
}
Oauth2SignUpForm contains form fields for request signup form.
func (*Oauth2SignUpForm) MarshalLogObject ¶
func (a *Oauth2SignUpForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type Oauth2TokenIntrospection ¶
type Oauth2TokenIntrospection struct {
// Active is a boolean indicator of whether or not the presented token
// is currently active. The specifics of a token's "active" state
// will vary depending on the implementation of the authorization
// server and the information it keeps about its tokens, but a "true"
// value return for the "active" property will generally indicate
// that a given token has been issued by this authorization server,
// has not been revoked by the resource owner, and is within its
// given time window of validity (e.g., after its issuance time and
// before its expiration time).
// Required: true
Active *bool `json:"active"`
// Audience contains a list of the token's intended audiences.
Audience []string `json:"aud"`
// ClientID is aclient identifier for the OAuth 2.0 client that
// requested this token.
ClientID string `json:"client_id,omitempty"`
// Expires at is an integer timestamp, measured in the number of seconds
// since January 1 1970 UTC, indicating when this token will expire.
ExpiresAt int64 `json:"exp,omitempty"`
// Extra is arbitrary data set by the session.
Extra map[string]interface{} `json:"ext,omitempty"`
// Issued at is an integer timestamp, measured in the number of seconds
// since January 1 1970 UTC, indicating when this token was
// originally issued.
IssuedAt int64 `json:"iat,omitempty"`
// IssuerURL is a string representing the issuer of this token
Issuer string `json:"iss,omitempty"`
// NotBefore is an integer timestamp, measured in the number of seconds
// since January 1 1970 UTC, indicating when this token is not to be
// used before.
NotBefore int64 `json:"nbf,omitempty"`
// ObfuscatedSubject is set when the subject identifier algorithm was set to "pairwise" during authorization.
// It is the `sub` value of the ID Token that was issued.
ObfuscatedSubject string `json:"obfuscated_subject,omitempty"`
// Scope is a JSON string containing a space-separated list of
// scopes associated with this token.
Scope string `json:"scope,omitempty"`
// Subject of the token, as defined in JWT [RFC7519].
// Usually a machine-readable identifier of the resource owner who
// authorized this token.
Subject string `json:"sub,omitempty"`
// TokenType is the introspected token's type, for example `access_token` or `refresh_token`.
TokenType string `json:"token_type,omitempty"`
// Username is a human-readable identifier for the resource owner who
// authorized this token.
Username string `json:"username,omitempty"`
}
Oauth2TokenIntrospection contains an access token's session data as specified by IETF RFC 7662, see:
type OneTimeToken ¶
type OneTimeToken struct {
// Token is the value of one-time token.
Token string `json:"token,omitempty"`
}
OneTimeToken contains one-time token.
func (*OneTimeToken) MarshalLogObject ¶
func (a *OneTimeToken) MarshalLogObject(enc zapcore.ObjectEncoder) error
type OneTimeTokenSettings ¶
type OneTimeTokenSettings struct {
// Length is the length of token.
Length int `bson:"length" json:"length"`
//TTL is the expiration time for the token.
TTL int `bson:"ttl" json:"ttl"`
}
OneTimeTokenSettings contains settings for to generate one-time token.
type PasswordLessStartForm ¶
type PasswordLessStartForm struct {
ClientId string `json:"client_id" form:"client_id" validate:"required"`
Connection string `json:"connection" form:"connection" validate:"required"`
}
func (*PasswordLessStartForm) MarshalLogObject ¶
func (m *PasswordLessStartForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type PasswordLessVerifyForm ¶
type PasswordLessVerifyForm struct {
ClientId string `json:"client_id" form:"client_id" validate:"required"`
Connection string `json:"connection" form:"connection" validate:"required"`
Code string `json:"verification_code" form:"verification_code" validate:"required"`
Token string `json:"token" form:"token" validate:"required"`
}
func (*PasswordLessVerifyForm) MarshalLogObject ¶
func (m *PasswordLessVerifyForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type PasswordSettings ¶
type PasswordSettings struct {
// BcryptCost determines the depth of password encryption for providers based on the database.
// CPU load and performance depend on the BCrypt cost.
BcryptCost int `bson:"bcrypt_cost" json:"bcrypt_cost"`
// Min is the minimal length password.
Min int `bson:"min" json:"min"`
// Max is the maximum length password.
Max int `bson:"max" json:"max"`
// RequireNumber requires numbers in the password.
RequireNumber bool `bson:"require_number" json:"require_number"`
// RequireUpper requires a capital letter in the password.
RequireUpper bool `bson:"require_upper" json:"require_upper"`
// RequireSpecial requires special characters in the password (~,!, @, and the like).
RequireSpecial bool `bson:"require_special" json:"require_special"`
// TokenLength determines the length of the token in the password change letter.
TokenLength int `bson:"token_length" json:"token_length"`
// TokenTTL determines the token's lifetime in the password change letter.
TokenTTL int `bson:"token_ttl" json:"token_ttl"`
}
PasswordSettings contains settings for valid password criteria.
func (*PasswordSettings) MarshalLogObject ¶
func (ps *PasswordSettings) MarshalLogObject(enc zapcore.ObjectEncoder) error
type SocialSettings ¶
type SocialSettings struct {
// LinkedTokenLength determines the length of the token.
LinkedTokenLength int `json:"linked_token_length"`
// LinkedTTL determines the token's lifetime.
LinkedTTL int `json:"linked_token_ttl"`
}
SocialSettings contains settings for a one-time token when linking a social account and password provider.
type Space ¶
type Space struct {
Id bson.ObjectId `bson:"_id" json:"id"` // unique space identifier
Name string `bson:"name" json:"name" validate:"required"` // space name
Description string `bson:"description" json:"description"` // space description
IsActive bool `bson:"is_active" json:"is_active"` // is space active
CreatedAt time.Time `bson:"created_at" json:"-"` // date of create space
UpdatedAt time.Time `bson:"updated_at" json:"-"` // date of update space
}
func (*Space) MarshalLogObject ¶
func (s *Space) MarshalLogObject(enc zapcore.ObjectEncoder) error
type SpaceForm ¶
type SpaceForm struct {
Name string `bson:"name" json:"name" validate:"required"` // space name
Description string `bson:"description" json:"description"` // space description
IsActive bool `bson:"is_active" json:"is_active"` // is space active
}
func (*SpaceForm) MarshalLogObject ¶
func (s *SpaceForm) MarshalLogObject(enc zapcore.ObjectEncoder) error
type User ¶
type User struct {
// ID is the id of user.
ID bson.ObjectId `bson:"_id" json:"id"`
// AppID is the id of the application.
AppID bson.ObjectId `bson:"app_id" json:"app_id"`
// Email is the email address of the user.
Email string `bson:"email" json:"email" validate:"required,email"`
// EmailVerified is status of verification user address.
EmailVerified bool `bson:"email_verified" json:"email_verified"`
// PhoneNumber is the phone number of the user.
PhoneNumber string `bson:"phone_number" json:"phone_number"`
// PhoneVerified is status of verification user phone.
PhoneVerified bool `bson:"phone_verified" json:"phone_verified"`
// Username is the nickname of the user.
Username string `bson:"username" json:"username"`
// Name is the name of the user. Contains first anf last name.
Name string `bson:"name" json:"name"`
// Picture is the avatar of the user.
Picture string `bson:"picture" json:"picture"`
// LastIp returns the ip of the last login.
LastIp string `bson:"last_ip" json:"last_ip"`
// LastLogin returns the timestamp of the last login.
LastLogin time.Time `bson:"last_login" json:"last_login"`
// LoginsCount contains count authorization for the user.
LoginsCount int `bson:"logins_count" json:"logins_count"`
// Blocked is status of user blocked.
Blocked bool `bson:"blocked" json:"blocked"`
// CreatedAt returns the timestamp of the user creation.
CreatedAt time.Time `bson:"created_at" json:"created_at"`
// UpdatedAt returns the timestamp of the last update.
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
User describes a table for storing the basic properties of the user.
func (*User) MarshalLogObject ¶
func (a *User) MarshalLogObject(enc zapcore.ObjectEncoder) error
type UserIdentity ¶
type UserIdentity struct {
// ID is the id of identity.
ID bson.ObjectId `bson:"_id" json:"id"`
// UserID is the id of the user.
UserID bson.ObjectId `bson:"user_id" json:"user_id"`
// ApplicationID is the id of the application.
ApplicationID bson.ObjectId `bson:"app_id" json:"app_id"`
// IdentityProviderID is the id of identity provider.
IdentityProviderID bson.ObjectId `bson:"identity_provider_id" json:"identity_provider_id" validate:"required"`
// ExternalID is the id of external network (like a facebook user id).
ExternalID string `bson:"external_id" json:"external_id"`
// Credential is the
Credential string `bson:"credential" json:"-" validate:"required"`
// Email is the email address of the user.
Email string `bson:"email" json:"email" validate:"required,email"`
// Username is the nickname of the user.
Username string `bson:"username" json:"username"`
// Name is the name of the user. Contains first anf last name.
Name string `bson:"name" json:"name"`
// Picture is the avatar of the user.
Picture string `bson:"picture" json:"picture"`
// Friends is a list of the friends to external network.
Friends []string `bson:"friends" json:"friends"`
// CreatedAt returns the timestamp of the user identity creation.
CreatedAt time.Time `bson:"created_at" json:"created_at"`
// UpdatedAt returns the timestamp of the last update.
UpdatedAt time.Time `bson:"updated_at" json:"updated_at"`
}
UserIdentity describes a table for storing the basic properties of the user identifier.
func (*UserIdentity) MarshalLogObject ¶
func (a *UserIdentity) MarshalLogObject(enc zapcore.ObjectEncoder) error
type UserIdentitySocial ¶
type UserIdentitySocial struct {
// ID is the id in the external network.
ID string `json:"id"`
// Name is the nickname or username of the user.
Name string `json:"name"`
// FirstName is the first name of the user.
FirstName string `json:"first_name"`
// LastName is the last name of the user.
LastName string `json:"last_name"`
// Email is the email address of the user.
Email string `json:"email"`
// Birthday is the date of birthday.
Birthday string `json:"birthday"`
// Picture is the avatar of the user.
Picture string `json:"picture"`
// Token is the access token on social network.
Token string `json:"token"`
}
UserIdentitySocial contains a basic set of fields for receiving information from external social networks.
func (*UserIdentitySocial) MarshalLogObject ¶
func (a *UserIdentitySocial) MarshalLogObject(enc zapcore.ObjectEncoder) error
type UserMfaToken ¶
type UserMfaToken struct {
// UserIdentity is the user identity record.
UserIdentity *UserIdentity
// MfaProvider is the mfa provider.
MfaProvider *MfaProvider
}
UserMfaToken contains link between user identity amd mfa provider.