From 042d475d6cada1d05932585b5d58ed28ba07dfc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 4 Apr 2026 00:09:15 +0300 Subject: [PATCH] feat: add session method get and terminate --- package.json | 2 +- proto/auth.proto | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4f876a0..1db5810 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lendry-erp/contracts", - "version": "1.0.45", + "version": "1.0.46", "description": "Protobuf definitions and generated TypeScript types", "type": "commonjs", "main": "./dist/index.js", diff --git a/proto/auth.proto b/proto/auth.proto index fc1d775..d324bfb 100644 --- a/proto/auth.proto +++ b/proto/auth.proto @@ -11,6 +11,8 @@ service AuthService { rpc GetAccountRoleLevel (GetAccountRoleLevelRequest) returns (GetAccountRoleLevelResponse); rpc Logout (LogoutRequest) returns (LogoutResponse); rpc LogoutOther (LogoutRequest) returns (LogoutResponse); + rpc GetSessions(GetSessionRequest) returns (GetSessionsResponse); + rpc TerminateSession(TerminateSessionRequest) returns (TerminateSessionResponse); } @@ -72,5 +74,31 @@ message GetAccountRoleLevelResponse { int32 role_level = 2; } +message GetSessionRequest { + string user_id = 1; + string session_id = 2; +} + +message SessionItem { + string id = 1; // Здесь будет лежать захэшированный ID + string ip_address = 2; + string user_agent = 3; + int64 last_activity = 4; // Unix timestamp в миллисекундах + bool is_current = 5; // Флаг текущей сессии +} + +message GetSessionsResponse { + repeated SessionItem sessions = 1; +} + +message TerminateSessionRequest { + string user_id = 1; + string target_hash = 2; // Хэш сессии, которую нужно убить +} + +message TerminateSessionResponse { + bool success = 1; + string message = 2; +}