From bc028287efe10973b2130cf3810e52206c8f926e Mon Sep 17 00:00:00 2001 From: MystiSs Date: Tue, 30 Sep 2025 01:43:34 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=20user.proto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.proto | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/user.proto b/user.proto index a175138..2c6e303 100644 --- a/user.proto +++ b/user.proto @@ -4,37 +4,69 @@ package user; option go_package = "github.com/esclient/user-service"; +// Сервис для управления пользователями: регистрация, аутентификация и верификация +// +// Этот сервис предоставляет функциональность для работы с пользователями, +// Включая регистрацию новых аккаунтов, аутентификацию и подтверждение email. service UserService { + // Аутентификация пользователя в системе rpc LoginUser(LoginUserRequest) returns (LoginUserResponse); + + // Регистрация нового пользователя rpc RegisterUser(RegisterUserRequest) returns (RegisterUserResponse); + + // Подтверждение после регистрации пользователя rpc VerifyUser(VerifyUserRequest) returns (VerifyUserResponse); } +// Запрос для аутентификации пользователя message LoginUserRequest { + // Логин или email пользователя string username_or_email = 1; + + // Пароль пользователя string password = 2; } +// Запрос для регистрации нового пользователя message RegisterUserRequest { + // Уникальный логин пользователя. Должен содержать только буквы, цифры и подчеркивания string login = 1; + + // Email пользователя. Должен быть валидным email адресом (однако доп. валидация будет проведена внутри сервиса) string email = 2; + + // Пароль пользователя. должен содержать цифры и буквы string password = 3; + + // Подтверждение пароля. Должно совпадать с полем password + // Валидация и сравнение проводится внутри сервиса string confirm_password = 4; } +// Запрос для подтверждения email пользователя message VerifyUserRequest { + // ID пользователя, которого нужно верифицировать. На данном этапе это число (int64) int64 user_id = 1; + + // Код подтверждения, отправленный на email пользователя. Валидация производится внутри сервиса string confirmation_code = 2; } +// Ответ после успешной аутентификации message LoginUserResponse { + // ID аутентифицированного пользователя int64 user_id = 1; } +// Ответ после успешной регистрации message RegisterUserResponse { + // ID зарегистрированного пользователя int64 user_id = 1; } +// Ответ с результатом верификации message VerifyUserResponse { + // Флаг успешной верификации пользователя bool is_verified = 1; } From d20eaa99ed0a2fe6d21680ba6995ed371c9eb583 Mon Sep 17 00:00:00 2001 From: MystiSs Date: Tue, 30 Sep 2025 01:46:53 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D1=82=D1=8B=D0=B5=20=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BC=D0=B5=D0=B6=D0=B4=D1=83=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D1=8F=D0=BC?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.proto | 7 ------- 1 file changed, 7 deletions(-) diff --git a/user.proto b/user.proto index 2c6e303..1a696d8 100644 --- a/user.proto +++ b/user.proto @@ -11,10 +11,8 @@ option go_package = "github.com/esclient/user-service"; service UserService { // Аутентификация пользователя в системе rpc LoginUser(LoginUserRequest) returns (LoginUserResponse); - // Регистрация нового пользователя rpc RegisterUser(RegisterUserRequest) returns (RegisterUserResponse); - // Подтверждение после регистрации пользователя rpc VerifyUser(VerifyUserRequest) returns (VerifyUserResponse); } @@ -23,7 +21,6 @@ service UserService { message LoginUserRequest { // Логин или email пользователя string username_or_email = 1; - // Пароль пользователя string password = 2; } @@ -32,13 +29,10 @@ message LoginUserRequest { message RegisterUserRequest { // Уникальный логин пользователя. Должен содержать только буквы, цифры и подчеркивания string login = 1; - // Email пользователя. Должен быть валидным email адресом (однако доп. валидация будет проведена внутри сервиса) string email = 2; - // Пароль пользователя. должен содержать цифры и буквы string password = 3; - // Подтверждение пароля. Должно совпадать с полем password // Валидация и сравнение проводится внутри сервиса string confirm_password = 4; @@ -48,7 +42,6 @@ message RegisterUserRequest { message VerifyUserRequest { // ID пользователя, которого нужно верифицировать. На данном этапе это число (int64) int64 user_id = 1; - // Код подтверждения, отправленный на email пользователя. Валидация производится внутри сервиса string confirmation_code = 2; } From 015d2e4aaf23636f756f8eabe6973249003feee7 Mon Sep 17 00:00:00 2001 From: MystiSs Date: Tue, 30 Sep 2025 01:53:06 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B1?= =?UTF-8?q?=D0=B5=D0=BB=D1=8B=20=D0=B2=20=D0=BA=D0=BE=D0=BD=D1=86=D0=B5=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.proto b/user.proto index 1a696d8..15951a7 100644 --- a/user.proto +++ b/user.proto @@ -5,7 +5,7 @@ package user; option go_package = "github.com/esclient/user-service"; // Сервис для управления пользователями: регистрация, аутентификация и верификация -// +// // Этот сервис предоставляет функциональность для работы с пользователями, // Включая регистрацию новых аккаунтов, аутентификацию и подтверждение email. service UserService { @@ -29,7 +29,7 @@ message LoginUserRequest { message RegisterUserRequest { // Уникальный логин пользователя. Должен содержать только буквы, цифры и подчеркивания string login = 1; - // Email пользователя. Должен быть валидным email адресом (однако доп. валидация будет проведена внутри сервиса) + // Email пользователя. Должен быть валидным email адресом (однако доп. валидация будет проведена внутри сервиса) string email = 2; // Пароль пользователя. должен содержать цифры и буквы string password = 3; From c5bc2f41e964e42063c77c140b1c58ed1fc17b79 Mon Sep 17 00:00:00 2001 From: timavar101 Date: Tue, 30 Sep 2025 23:04:14 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- email.proto | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/email.proto b/email.proto index 4397283..01305da 100644 --- a/email.proto +++ b/email.proto @@ -2,26 +2,45 @@ syntax = "proto3"; package email; +//Сервис для подтверждения аккаунта через эл. почту (email) +//Сервис связан с user-сервисом, а именно регитсрацией, подтверждением и входом в аккаунт +// +//rpc для Email сервиса service EmailService { + //Отправка сообщения пользователю на почту rpc SendEmail(SendEmailRequest) returns (SendEmailResponse); } +//Проверка существования кода enum EmailTemplate { + //кода нет либо код неправильный, выдает ошибку EMAIL_TEMPLATE_UNSPECIFIED = 0; + //Код существует (то есть верный) EMAIL_TEMPLATE_VERIFICATION_CODE = 1; } +//Выбор кода для отправки (если я правильно понял) message EmailTemplateVar { + //номер вариации кода (условно код номер 18) string key = 1; + //сам код (к примеру 186745) string value = 2; + // + //то есть, (опять же, если я правильно понял) механизм выбирает номер кода (случайно) и отпрвляет сам код пользователю } +//Запрос отправки email'a message SendEmailRequest { + //email пользователя string destination_email = 1; + //проверка существования кода EmailTemplate template = 2; + //сам код repeated EmailTemplateVar vars = 3; } +//Подтверждение отправки email'а с кодом message SendEmailResponse { + //Если письмо отправлено возращается true bool success = 1; } From 35a078ed220bea6589f7cae8d26d5d48d391802d Mon Sep 17 00:00:00 2001 From: Andrey Kataev Date: Tue, 30 Sep 2025 21:14:55 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B4=D0=BE=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- email.proto | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/email.proto b/email.proto index 01305da..95fc76a 100644 --- a/email.proto +++ b/email.proto @@ -7,40 +7,38 @@ package email; // //rpc для Email сервиса service EmailService { - //Отправка сообщения пользователю на почту + //Отправка электронного письма пользователю на почту rpc SendEmail(SendEmailRequest) returns (SendEmailResponse); } -//Проверка существования кода +//Шаблон письма enum EmailTemplate { - //кода нет либо код неправильный, выдает ошибку + //Шаблон неопределен EMAIL_TEMPLATE_UNSPECIFIED = 0; - //Код существует (то есть верный) + //Шаблон кода подтверждения EMAIL_TEMPLATE_VERIFICATION_CODE = 1; } -//Выбор кода для отправки (если я правильно понял) +//Плейслхолдеры для шаблона электронного письма message EmailTemplateVar { - //номер вариации кода (условно код номер 18) + //Ключ из шаблона string key = 1; - //сам код (к примеру 186745) + //Его значение для подстановки string value = 2; - // - //то есть, (опять же, если я правильно понял) механизм выбирает номер кода (случайно) и отпрвляет сам код пользователю } //Запрос отправки email'a message SendEmailRequest { - //email пользователя + //Email пользователя string destination_email = 1; - //проверка существования кода + //Шаблон письма EmailTemplate template = 2; - //сам код + //Переменные для подстановки repeated EmailTemplateVar vars = 3; } -//Подтверждение отправки email'а с кодом +//Результат отправки письма message SendEmailResponse { - //Если письмо отправлено возращается true + //Если письмо отправлено успешно, то возращается true bool success = 1; }