-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
- Дописать бизнес-логику логина: в internal/userservice/service/service.go реализовать Login, использовать свой user.User, а не os/user, проверять bcrypt-хэш, статус пользователя (PENDING/ACTIVE; сейчас константа опечатана как PENDIG), и отказ, если почта не подтверждена
- Реализовать GetByLogin/GetByEmail в internal/userservice/repository/repository.go с выборкой полей id/login/email/password/status; поправить импорты (убрать os/user) и ошибки
- Добавить генерацию/проверку JWT (пакет github.com/golang-jwt/jwt/v5): helper с claims (sub, iat, exp, token_version), конфиг JWT_ACCESS_TTL, JWT_REFRESH_TTL, JWT_PRIVATE_KEY/PUBLIC_KEY или JWT_SECRET
- Расширить протокол protos/user.proto: LoginUserResponse вернуть access_token, refresh_token, expires_in; добавить RPC RefreshToken, Logout/RevokeAllSessions, при необходимости ValidateToken для gateway. Пересгенерировать стабы
- Миграция на refresh_tokens таблицу (user_id, token_id/uuid, token_hash, expires_at, revoked_at, user_agent/device_id, created_at). В сервисе — ротация refresh, хранение только хэша, проверка версии пользователя
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Нужно сделать