Skip to content

Фиксы и доработки для авторизации пользователя по JWT #22

@kataevandrey

Description

@kataevandrey
  1. Дописать бизнес-логику логина: в internal/userservice/service/service.go реализовать Login, использовать свой user.User, а не os/user, проверять bcrypt-хэш, статус пользователя (PENDING/ACTIVE; сейчас константа опечатана как PENDIG), и отказ, если почта не подтверждена
  2. Реализовать GetByLogin/GetByEmail в internal/userservice/repository/repository.go с выборкой полей id/login/email/password/status; поправить импорты (убрать os/user) и ошибки
  3. Добавить генерацию/проверку 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
  4. Расширить протокол protos/user.proto: LoginUserResponse вернуть access_token, refresh_token, expires_in; добавить RPC RefreshToken, Logout/RevokeAllSessions, при необходимости ValidateToken для gateway. Пересгенерировать стабы
  5. Миграция на 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
No labels

Type

No type

Projects

Status

Нужно сделать

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions