Documentation ¶
Overview ¶
Package sudo provides a service for handling sudo operations.
Package sudo provides error messages for the sudo package.
Package sudo provides a service for handling sudo operations.
Package sudo provides a service for handling sudo operations.
Package sudo provides a service for handling sudo operations.
Package sudo provides a service for handling sudo operations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Messages = messages{
FailedRedisFetch: "sudo_redis_fetch_failed",
FailedRedisSet: "sudo_redis_set_failed",
FailedMarshal: "sudo_json_marshal_failed",
NotFound: "sudo_not_found",
InvalidToken: "sudo_invalid_token",
InvalidCode: "sudo_invalid_code",
ExpiredCode: "sudo_expired_code",
ExceedTryCount: "sudo_exceed_try_count",
Unknown: "sudo_unknown",
VerifyStarted: "sudo_verify_started",
}
Messages is an instance of the messages struct with predefined error messages.
Functions ¶
This section is empty.
Types ¶
type CheckCommand ¶
type CheckCommand struct { // UserId is the unique identifier of the user. UserId string // DeviceId is the unique identifier of the device. DeviceId string // Token is the access token to be checked. Token string }
CheckCommand represents the command structure for the Check operation.
type Config ¶
type Config struct { // Redis is the Redis service. Redis mredis.Service // NotifySender is the function used to send notifications. NotifySender NotifySender // Expire is the expiration time for sudo operations. Expire time.Duration }
Config holds the configuration for the sudo service.
type NotifyCommand ¶
type NotifyCommand struct { // DeviceId is the unique identifier of the device. DeviceId string // Code is the verification code to be sent. Code string // Phone is the phone number to send the code to. Phone string // Email is the email address to send the code to. Email string // Locale is the language and region to use for the notification. Locale string }
NotifyCommand represents the command structure for sending notifications.
type NotifySender ¶
type NotifySender func(NotifyCommand)
NotifySender is a function type for sending notifications.
type Service ¶
type Service interface { // Check validates the provided token for a given user and device. Check(ctx context.Context, cmd CheckCommand) error // Start initiates the sudo operation for a given user and device. Start(ctx context.Context, cmd StartCommand) (*string, error) // Verify validates the provided code and verify token for a given user and device. Verify(ctx context.Context, cmd VerifyCommand) (*string, error) // VerifyToken validates the format of a given token. VerifyToken(token string) error }
Service defines the interface for the sudo service.
type StartCommand ¶
type StartCommand struct { // UserId is the unique identifier of the user. UserId string // DeviceId is the unique identifier of the device. DeviceId string // Phone is the phone number to send the code to. Phone string // Email is the email address to send the code to. Email string // Locale is the language and region to use for the notification. Locale string }
StartCommand represents the command structure for the Start operation.
type VerifyCommand ¶
type VerifyCommand struct { // UserId is the unique identifier of the user. UserId string // DeviceId is the unique identifier of the device. DeviceId string // VerifyToken is the token to be verified. VerifyToken string // Code is the verification code to be verified. Code string }
VerifyCommand represents the command structure for the Verify operation.