622638643c
modified: main_dc/yalarba/api_yal/go.mod modified: main_dc/yalarba/api_yal/go.sum modified: main_dc/yalarba/api_yal/internal/domain/auth/dto.go modified: main_dc/yalarba/api_yal/internal/domain/auth/handler.go modified: main_dc/yalarba/api_yal/internal/domain/auth/router.go modified: main_dc/yalarba/api_yal/internal/domain/auth/servcie.go renew go.mod file implememented auth domain
76 lines
2.7 KiB
Go
76 lines
2.7 KiB
Go
package auth
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
// RegisterRequest - запрос на регистрацию
|
|
type RegisterRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
Password string `json:"password" validate:"required,min=6"`
|
|
FirstName string `json:"first_name" validate:"required"`
|
|
LastName string `json:"last_name" validate:"required"`
|
|
}
|
|
|
|
// LoginRequest - запрос на вход
|
|
type LoginRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
Password string `json:"password" validate:"required"`
|
|
}
|
|
|
|
// AuthResponse структура ответа при успешной аутентификации
|
|
type AuthResponse struct {
|
|
Token string `json:"token"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
User UserInfo `json:"user"`
|
|
}
|
|
|
|
// RefreshTokenResponse структура ответа при обновлении токена
|
|
type RefreshTokenResponse struct {
|
|
Token string `json:"token"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
User UserInfo `json:"user"`
|
|
}
|
|
|
|
// ResetPasswordRequest - запрос на сброс пароля
|
|
type ResetPasswordRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
}
|
|
|
|
// ResetPasswordConfirmRequest - запрос на подтверждение сброса пароля
|
|
type ResetPasswordConfirmRequest struct {
|
|
Token string `json:"token" validate:"required"`
|
|
NewPassword string `json:"new_password" validate:"required,min=6"`
|
|
}
|
|
|
|
// RefreshTokenRequest - запрос на обновление токена (только для мобильных приложений)
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refresh_token" validate:"required"`
|
|
}
|
|
|
|
// ChangePasswordRequest - запрос на смену пароля (для account домена)
|
|
type ChangePasswordRequest struct {
|
|
OldPassword string `json:"old_password" validate:"required"`
|
|
NewPassword string `json:"new_password" validate:"required,min=6"`
|
|
}
|
|
|
|
// UserInfo информация о пользователе для ответа
|
|
type UserInfo struct {
|
|
ID uint `json:"id"`
|
|
Email string `json:"email"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"last_name"`
|
|
FullName string `json:"full_name"`
|
|
Role string `json:"role"`
|
|
}
|
|
|
|
var (
|
|
ErrUserNotFound = errors.New("user not found")
|
|
ErrInvalidPassword = errors.New("invalid password")
|
|
ErrUserAlreadyExists = errors.New("user with this email already exists")
|
|
ErrInvalidToken = errors.New("invalid token")
|
|
ErrTokenExpired = errors.New("token expired")
|
|
ErrResetTokenInvalid = errors.New("reset token is invalid or expired")
|
|
ErrResetTokenNotFound = errors.New("reset token not found")
|
|
) |