8b40d1bfe5
modified: internal/domain/auth/dto.go modified: internal/domain/auth/handler.go modified: internal/domain/auth/router.go modified: internal/domain/auth/servcie.go modified: internal/middleware/auth.go modified: internal/router/router.go auth implemented without reset password
69 lines
2.4 KiB
Go
69 lines
2.4 KiB
Go
// dto.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"` // Access token для Bearer авторизации
|
|
ExpiresAt time.Time `json:"expires_at"` // Время истечения access token
|
|
User UserInfo `json:"user"`
|
|
}
|
|
|
|
// RefreshTokenResponse структура ответа при обновлении токена
|
|
type RefreshTokenResponse struct {
|
|
Token string `json:"token"` // Новый access token
|
|
ExpiresAt time.Time `json:"expires_at"` // Время истечения нового access token
|
|
User UserInfo `json:"user"`
|
|
}
|
|
|
|
// ResetPasswordRequest - запрос на сброс пароля
|
|
type ResetPasswordRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
}
|
|
|
|
// RefreshTokenRequest - запрос на обновление токена (только для мобильных приложений)
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refresh_token" validate:"required"`
|
|
}
|
|
|
|
// ChangePasswordRequest - запрос на смену пароля
|
|
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")
|
|
) |