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.