From 1ec209108a4e87fdcbc7790d8c4068044bedc615 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 12 Dec 2025 00:29:35 +0300 Subject: [PATCH] schema --- .../lib/api/v2/admin_auth_api_v2.dart | 34 ++++--------------- mnemo_cards_common_backend/lib/src/isar.dart | 1 + 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/mnemo_cards_backend/lib/api/v2/admin_auth_api_v2.dart b/mnemo_cards_backend/lib/api/v2/admin_auth_api_v2.dart index 3595c00..6c1b16e 100644 --- a/mnemo_cards_backend/lib/api/v2/admin_auth_api_v2.dart +++ b/mnemo_cards_backend/lib/api/v2/admin_auth_api_v2.dart @@ -2,13 +2,12 @@ import 'dart:convert'; import 'package:injectable/injectable.dart'; import 'package:mnemo_cards_backend/api/authorize/helpers.dart'; +import 'package:mnemo_cards_backend/api/v2/jwt_service.dart'; import 'package:mnemo_cards_backend/auth/telegram_auth_code_service.dart'; import 'package:mnemo_cards_backend/user/admin_ids_service.dart'; import 'package:mnemo_cards_backend/user/user_manager.dart'; -import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart'; import 'package:shelf/shelf.dart'; import 'package:shelf_router/shelf_router.dart'; -import 'package:jaguar_jwt/jaguar_jwt.dart'; part 'admin_auth_api_v2.g.dart'; @@ -17,10 +16,12 @@ part 'admin_auth_api_v2.g.dart'; class AdminAuthApiV2 { final TelegramAuthCodeService _telegramAuthCodeService; final UserManager _userManager; + final JwtService _jwtService; AdminAuthApiV2( this._telegramAuthCodeService, this._userManager, + this._jwtService, ); Response _json( @@ -157,12 +158,12 @@ class AdminAuthApiV2 { ); } - // Generate JWT token - final token = _generateJwtToken(user); + // Generate JWT token using JwtService (same as regular auth) + final tokens = await _jwtService.generateTokens(user); return _json({ 'success': true, - 'token': token, + 'token': tokens.accessToken, 'user': { 'id': user.id, 'name': user.name, @@ -270,28 +271,5 @@ class AdminAuthApiV2 { return AdminIdsService.getAdminIds(); } - /// Generate JWT token for admin user - String _generateJwtToken(UserModel user) { - final claimSet = JwtClaim( - issuer: 'mnemo-cards-admin', - subject: user.id.toString(), - audience: const ['admin-panel'], - issuedAt: DateTime.now(), - expiry: DateTime.now().add(const Duration(hours: 24)), // 24 hours - payload: { - 'userId': user.id, - 'admin': true, - // Note: UserModel doesn't have telegramUserId field - // 'telegramUserId': user.telegramUserId, - }, - ); - - // Use a secure secret key (should be from environment/config) - const secret = 'your-admin-jwt-secret-key-change-this-in-production'; - - final token = issueJwtHS256(claimSet, secret); - return token; - } - Router get router => _$AdminAuthApiV2Router(this); } diff --git a/mnemo_cards_common_backend/lib/src/isar.dart b/mnemo_cards_common_backend/lib/src/isar.dart index c6438cb..98b0b12 100644 --- a/mnemo_cards_common_backend/lib/src/isar.dart +++ b/mnemo_cards_common_backend/lib/src/isar.dart @@ -34,6 +34,7 @@ class IsarConnector { UserTaskProgressModelSchema, UserTaskResultModelSchema, ShareRequestModelSchema, + StudySessionModelSchema, ], directory: dir, name: 'db',