Documentation ¶
Index ¶
- Constants
- Variables
- func MapCognitoErrorToLocalError(ctx context.Context, cognitoErr awserr.Error) string
- type AccessToken
- type ChangePassword
- func (p ChangePassword) BuildAuthChallengeResponseRequest(clientSecret string, clientId string, challengeName string) *cognitoidentityprovider.RespondToAuthChallengeInput
- func (p ChangePassword) BuildAuthChallengeSuccessfulJsonResponse(ctx context.Context, ...) ([]byte, error)
- func (p ChangePassword) ValidateNewPasswordRequiredRequest(ctx context.Context) []error
- type CreateUserInput
- type CreateUserOutput
- type Error
- type ErrorResponse
- type IdClaims
- type IdToken
- type ListUsersInput
- type ListUsersOutput
- type PasswordReset
- type RefreshToken
- func (t *RefreshToken) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput) ([]byte, error)
- func (t *RefreshToken) GenerateRefreshRequest(clientSecret string, username string, clientId string) *cognitoidentityprovider.InitiateAuthInput
- func (t *RefreshToken) Validate(ctx context.Context) *Error
- type SuccessResponse
- type UserParams
- func (p UserParams) BuildAdminGetUserRequest(userPoolId string) *cognitoidentityprovider.AdminGetUserInput
- func (p UserParams) BuildCreateUserRequest(userId string, userPoolId string) *cognitoidentityprovider.AdminCreateUserInput
- func (p UserParams) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)
- func (p UserParams) CheckForDuplicateEmail(ctx context.Context, listUserResp *cognitoidentityprovider.ListUsersOutput) error
- func (p *UserParams) GeneratePassword(ctx context.Context) error
- func (p UserParams) MapCognitoDetails(userDetails *cognitoidentityprovider.UserType) UserParams
- func (p *UserParams) MapCognitoGetResponse(userDetails *cognitoidentityprovider.AdminGetUserOutput)
- func (p UserParams) ValidateRegistration(ctx context.Context) []error
- type UserSignIn
- func (p *UserSignIn) BuildCognitoRequest(clientId string, clientSecret string, clientAuthFlow string) *cognitoidentityprovider.InitiateAuthInput
- func (p *UserSignIn) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput) ([]byte, error)
- func (p *UserSignIn) ValidateCredentials(ctx context.Context) *[]error
- type UsersList
- func (p UsersList) BuildListUserRequest(filterString string, requiredAttribute string, limit int64, userPoolId *string) *cognitoidentityprovider.ListUsersInput
- func (p *UsersList) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)
- func (p *UsersList) MapCognitoUsers(cognitoResults *cognitoidentityprovider.ListUsersOutput)
Constants ¶
const ( BodyReadError = "RequestBodyReadError" JSONMarshalError = "JSONMarshalError" JSONUnmarshalError = "JSONUnmarshalError" WriteResponseError = "WriteResponseError" InvalidForenameError = "InvalidForename" InvalidSurnameError = "InvalidSurname" InvalidEmailError = "InvalidEmail" InvalidTokenError = "InvalidToken" InternalError = "InternalServerError" NotFoundError = "NotFound" UserNotFoundError = "UserNotFound" AlreadyExistsError = "AlreadyExists" DeliveryFailureError = "DeliveryFailure" InvalidCodeError = "InvalidCode" ExpiredCodeError = "ExpiredCode" InvalidFieldError = "InvalidField" InvalidPasswordError = "InvalidPassword" LimitExceededError = "LimitExceeded" NotAuthorisedError = "NotAuthorised" PasswordResetRequiredError = "PasswordResetRequired" TooManyFailedAttemptsError = "TooManyFailedAttempts" TooManyRequestsError = "TooManyRequests" UserNotConfirmedError = "UserNotConfirmed" UsernameExistsError = "UsernameExists" MissingConfigError = "MissingConfig" UnknownRequestTypeError = "UnknownRequestType" NotImplementedError = "NotImplemented" InvalidChallengeSessionError = "InvalidChallengeSession" )
API error codes
const ( MissingAuthorizationTokenDescription = "no Authorization token was provided" MissingRefreshTokenDescription = "no Refresh token was provided" MissingIDTokenDescription = "no ID token was provided" MalformedIDTokenDescription = "the ID token could not be parsed" MalformedAuthorizationTokenDescription = "the authorization token does not meet the required format" ErrorMarshalFailedDescription = "failed to marshal the error" ErrorUnmarshalFailedDescription = "failed to unmarshal the request body" WriteResponseFailedDescription = "failed to write http response" CastingAWSErrorFailedDescription = "failed to cast error to AWS error" UnrecognisedCognitoResponseDescription = "unexpected response from cognito" BodyReadFailedDescription = "endpoint returned an error reading the request body" InvalidPasswordDescription = "the submitted password could not be validated" PasswordGenerationErrorDescription = "failed to generate a valid password" InvalidForenameErrorDescription = "the submitted user's forename could not be validated" InvalidSurnameErrorDescription = "the submitted user's lastname could not be validated" InvalidEmailDescription = "the submitted email could not be validated" DuplicateEmailDescription = "account using email address found" SignInFailedDescription = "Incorrect username or password." SignInAttemptsExceededDescription = "Password attempts exceeded" MissingConfigDescription = "required configuration setting is missing" UnknownPasswordChangeTypeDescription = "unknown password change type received" NotImplementedDescription = "this feature has not been implemented yet" InvalidChallengeSessionDescription = "no valid auth challenge session was provided" )
API error descriptions
const ( NewPasswordRequiredType = "NewPasswordRequired" ForgottenPasswordType = "ForgottenPassword" )
Variables ¶
var CognitoErrorMapping = map[string]string{ cognitoidentityprovider.ErrCodeInternalErrorException: InternalError, cognitoidentityprovider.ErrCodeCodeDeliveryFailureException: DeliveryFailureError, cognitoidentityprovider.ErrCodeCodeMismatchException: InvalidCodeError, cognitoidentityprovider.ErrCodeConcurrentModificationException: InternalError, cognitoidentityprovider.ErrCodeExpiredCodeException: ExpiredCodeError, cognitoidentityprovider.ErrCodeGroupExistsException: AlreadyExistsError, cognitoidentityprovider.ErrCodeInvalidOAuthFlowException: InternalError, cognitoidentityprovider.ErrCodeInvalidParameterException: InvalidFieldError, cognitoidentityprovider.ErrCodeInvalidPasswordException: InvalidPasswordError, cognitoidentityprovider.ErrCodeLimitExceededException: LimitExceededError, cognitoidentityprovider.ErrCodeNotAuthorizedException: NotAuthorisedError, cognitoidentityprovider.ErrCodePasswordResetRequiredException: PasswordResetRequiredError, cognitoidentityprovider.ErrCodeResourceNotFoundException: NotFoundError, cognitoidentityprovider.ErrCodeTooManyFailedAttemptsException: TooManyFailedAttemptsError, cognitoidentityprovider.ErrCodeTooManyRequestsException: TooManyRequestsError, cognitoidentityprovider.ErrCodeUserNotConfirmedException: UserNotConfirmedError, cognitoidentityprovider.ErrCodeUserNotFoundException: UserNotFoundError, cognitoidentityprovider.ErrCodeUsernameExistsException: UsernameExistsError, request.ErrCodeSerialization: InternalError, request.ErrCodeRead: InternalError, request.ErrCodeResponseTimeout: InternalError, request.ErrCodeInvalidPresignExpire: InternalError, request.CanceledErrorCode: InternalError, request.ErrCodeRequestError: InternalError, }
Mapping Cognito error codes to API error codes
Functions ¶
Types ¶
type AccessToken ¶ added in v1.8.0
func (*AccessToken) GenerateSignOutRequest ¶ added in v1.8.0
func (t *AccessToken) GenerateSignOutRequest() *cognitoidentityprovider.GlobalSignOutInput
type ChangePassword ¶ added in v1.10.0
type ChangePassword struct { ChangeType string `json:"type"` Session string `json:"session"` Email string `json:"email"` NewPassword string `json:"password"` }
func (ChangePassword) BuildAuthChallengeResponseRequest ¶ added in v1.10.0
func (p ChangePassword) BuildAuthChallengeResponseRequest(clientSecret string, clientId string, challengeName string) *cognitoidentityprovider.RespondToAuthChallengeInput
BuildAuthChallengeResponseRequest generates a RespondToAuthChallengeInput for Cognito
func (ChangePassword) BuildAuthChallengeSuccessfulJsonResponse ¶ added in v1.10.0
func (p ChangePassword) BuildAuthChallengeSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.RespondToAuthChallengeOutput) ([]byte, error)
BuildAuthChallengeSuccessfulJsonResponse builds the ChangePassword response json for client responses to NewPasswordRequired changes
func (ChangePassword) ValidateNewPasswordRequiredRequest ¶ added in v1.10.0
func (p ChangePassword) ValidateNewPasswordRequiredRequest(ctx context.Context) []error
ValidateNewPasswordRequiredRequest validates the required fields have been submitted and meet the basic structure requirements
type CreateUserInput ¶
type CreateUserInput struct {
UserInput *cognitoidentityprovider.AdminCreateUserInput
}
type CreateUserOutput ¶
type CreateUserOutput struct {
UserOutput *cognitoidentityprovider.AdminCreateUserOutput
}
type Error ¶ added in v1.8.0
type Error struct { Cause error `json:"-"` Code string `json:"code"` Description string `json:"description"` }
func NewCognitoError ¶ added in v1.8.0
func NewValidationError ¶ added in v1.8.0
type ErrorResponse ¶ added in v1.8.0
type ErrorResponse struct { Errors []error `json:"errors"` Status int `json:"-"` Headers map[string]string `json:"-"` }
func NewErrorResponse ¶ added in v1.8.0
func NewErrorResponse(errors []error, statusCode int, headers map[string]string) *ErrorResponse
type IdClaims ¶
type IdClaims struct { Sub string `json:"sub"` Aud string `json:"aud"` EmailVerified bool `json:"email_verified"` TokenUse string `json:"token_use"` AuthTime int `json:"auth_time"` Iss string `json:"iss"` CognitoUser string `json:"cognito:username"` Exp int `json:"exp"` GivenName string `json:"given_name"` Iat int `json:"iat"` Email string `json:"email"` jwt.StandardClaims }
type IdToken ¶
func (*IdToken) ParseWithoutValidating ¶
ParseWithoutValidating parses the claims in an ID token JWT in to a IdClaims struct without validating the token
type ListUsersInput ¶
type ListUsersInput struct {
ListUsersInput *cognitoidentityprovider.ListUsersInput
}
type ListUsersOutput ¶
type ListUsersOutput struct {
ListUsersOutput *cognitoidentityprovider.ListUsersOutput
}
type PasswordReset ¶ added in v1.11.0
type PasswordReset struct {
Email string `json:"email"`
}
func (PasswordReset) BuildCognitoRequest ¶ added in v1.11.0
func (p PasswordReset) BuildCognitoRequest(clientSecret string, clientId string) *cognitoidentityprovider.ForgotPasswordInput
type RefreshToken ¶
type RefreshToken struct {
TokenString string
}
func (*RefreshToken) BuildSuccessfulJsonResponse ¶ added in v1.8.0
func (t *RefreshToken) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput) ([]byte, error)
func (*RefreshToken) GenerateRefreshRequest ¶
func (t *RefreshToken) GenerateRefreshRequest(clientSecret string, username string, clientId string) *cognitoidentityprovider.InitiateAuthInput
GenerateRefreshRequest produces a Cognito InitiateAuthInput struct for refreshing a users current session
type SuccessResponse ¶ added in v1.8.0
type SuccessResponse struct { Body []byte `json:"-"` Status int `json:"-"` Headers map[string]string `json:"-"` }
func NewSuccessResponse ¶ added in v1.8.0
func NewSuccessResponse(jsonBody []byte, statusCode int, headers map[string]string) *SuccessResponse
type UserParams ¶
type UserParams struct { Forename string `json:"forename"` Lastname string `json:"lastname"` Email string `json:"email"` Password string `json:"-"` Groups []string `json:"groups"` Status string `json:"status"` ID string `json:"id"` }
func (UserParams) BuildAdminGetUserRequest ¶ added in v1.12.0
func (p UserParams) BuildAdminGetUserRequest(userPoolId string) *cognitoidentityprovider.AdminGetUserInput
BuildCreateUserRequest generates a AdminCreateUserInput for Cognito
func (UserParams) BuildCreateUserRequest ¶ added in v1.8.0
func (p UserParams) BuildCreateUserRequest(userId string, userPoolId string) *cognitoidentityprovider.AdminCreateUserInput
BuildCreateUserRequest generates a AdminCreateUserInput for Cognito
func (UserParams) BuildSuccessfulJsonResponse ¶ added in v1.8.0
func (p UserParams) BuildSuccessfulJsonResponse(ctx context.Context) ([]byte, error)
BuildSuccessfulJsonResponse builds the UserParams response json for client responses
func (UserParams) CheckForDuplicateEmail ¶ added in v1.8.0
func (p UserParams) CheckForDuplicateEmail(ctx context.Context, listUserResp *cognitoidentityprovider.ListUsersOutput) error
CheckForDuplicateEmail checks the Cognito response for users already using the email address, returning a validation error if found
func (*UserParams) GeneratePassword ¶ added in v1.8.0
func (p *UserParams) GeneratePassword(ctx context.Context) error
GeneratePassword creates a password for the user and assigns it to the struct
func (UserParams) MapCognitoDetails ¶ added in v1.11.0
func (p UserParams) MapCognitoDetails(userDetails *cognitoidentityprovider.UserType) UserParams
MapCognitoDetails maps the details from the Cognito User model to the UserParams model
func (*UserParams) MapCognitoGetResponse ¶ added in v1.12.0
func (p *UserParams) MapCognitoGetResponse(userDetails *cognitoidentityprovider.AdminGetUserOutput)
func (UserParams) ValidateRegistration ¶ added in v1.8.0
func (p UserParams) ValidateRegistration(ctx context.Context) []error
ValidateRegistration validates the required fields for user creation, returning validation errors for any failures
type UserSignIn ¶ added in v1.8.0
func (*UserSignIn) BuildCognitoRequest ¶ added in v1.8.0
func (p *UserSignIn) BuildCognitoRequest(clientId string, clientSecret string, clientAuthFlow string) *cognitoidentityprovider.InitiateAuthInput
BuildCognitoRequest generates a InitiateAuthInput for Cognito
func (*UserSignIn) BuildSuccessfulJsonResponse ¶ added in v1.8.0
func (p *UserSignIn) BuildSuccessfulJsonResponse(ctx context.Context, result *cognitoidentityprovider.InitiateAuthOutput) ([]byte, error)
BuildSuccessfulJsonResponse builds the UserSignIn response json for client responses
func (*UserSignIn) ValidateCredentials ¶ added in v1.8.0
func (p *UserSignIn) ValidateCredentials(ctx context.Context) *[]error
ValidateCredentials validates the required fields have been submitted and meet the basic structure requirements
type UsersList ¶ added in v1.11.0
type UsersList struct { Users []UserParams `json:"users"` Count int `json:"count"` }
func (UsersList) BuildListUserRequest ¶ added in v1.11.0
func (p UsersList) BuildListUserRequest(filterString string, requiredAttribute string, limit int64, userPoolId *string) *cognitoidentityprovider.ListUsersInput
BuildListUserRequest generates a ListUsersInput object for Cognito
func (*UsersList) BuildSuccessfulJsonResponse ¶ added in v1.11.0
BuildSuccessfulJsonResponse builds the UsersList response json for client responses
func (*UsersList) MapCognitoUsers ¶ added in v1.11.0
func (p *UsersList) MapCognitoUsers(cognitoResults *cognitoidentityprovider.ListUsersOutput)
MapCognitoUsers maps the users from the cognito response into the UsersList Users attribute and sets the Count attribute