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
No fields configured for issues without a type.

Projects

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

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions