初步完成用户电子邮箱绑定(激活)

This commit is contained in:
GoEdgeLab
2022-12-08 20:26:20 +08:00
parent af2592b531
commit 4d5d85cced
15 changed files with 2208 additions and 733 deletions

View File

@@ -14,6 +14,7 @@ message User {
string mobile = 4;
string tel = 5;
string email = 6;
string verifiedEmail = 20;
string remark = 7;
bool isOn = 8;
int64 createdAt = 9;

View File

@@ -0,0 +1,16 @@
syntax = "proto3";
option go_package = "./pb";
package pb;
// 电子邮箱认证
message UserEmailVerification {
int64 id = 1;
string email = 2; // Email
int64 userId = 3; // 用户ID
string code = 4; // 代号
int64 createdAt = 5; // 创建时间
bool isSent = 6; // 已发送
bool isVerified = 7; // 已激活
int64 expiresAt = 8; // 过期时间,动态计算而来
}

View File

@@ -13,6 +13,9 @@ service MessageMediaService {
// 设置所有支持的媒介
rpc updateMessageMedias (UpdateMessageMediasRequest) returns (RPCSuccess);
// 发送媒介信息
rpc sendMediaMessage(SendMediaMessageRequest) returns (RPCSuccess);
}
// 获取所有支持的媒介
@@ -27,4 +30,13 @@ message FindAllMessageMediasResponse {
// 设置所有支持的媒介
message UpdateMessageMediasRequest {
repeated MessageMedia messageMedias = 2;
}
// 发送媒介信息
message SendMediaMessageRequest {
string mediaType = 1; // 媒介类型
bytes optionsJSON = 2; // 媒介参数
string user = 3; // 接收用户
string subject = 4; // 标题
string body = 5; // 内容
}

View File

@@ -14,7 +14,7 @@ service UserService {
rpc createUser (CreateUserRequest) returns (CreateUserResponse);
// 注册用户
rpc registerUser(RegisterUserRequest) returns (RPCSuccess);
rpc registerUser(RegisterUserRequest) returns (RegisterUserResponse);
// 审核用户
rpc verifyUser(VerifyUserRequest) returns (RPCSuccess);
@@ -84,6 +84,9 @@ service UserService {
// 更新用户服务可用状态
rpc renewUserServersState(RenewUserServersStateRequest) returns (RenewUserServersStateResponse);
// 检查邮箱是否已被使用
rpc checkUserEmailIsUsing(CheckUserEmailIsUsingRequest) returns (CheckUserEmailIsUsingResponse);
}
// 创建用户
@@ -114,6 +117,11 @@ message RegisterUserRequest {
string source = 7;
}
message RegisterUserResponse {
int64 userId = 1;
bool requireEmailVerification = 2; // 是否需要激活邮件
}
// 审核用户
message VerifyUserRequest {
int64 userId = 1;
@@ -350,4 +358,13 @@ message RenewUserServersStateRequest {
message RenewUserServersStateResponse {
bool isEnabled = 1;
}
// 检查邮箱是否已被验证
message CheckUserEmailIsUsingRequest {
string email = 1;
}
message CheckUserEmailIsUsingResponse {
bool isUsing = 1; // 是否已被使用
}

View File

@@ -0,0 +1,45 @@
syntax = "proto3";
option go_package = "./pb";
package pb;
import "models/rpc_messages.proto";
import "models/model_user_email_verification.proto";
// 用户电子邮箱认证服务
service UserEmailVerificationService {
// 认证邮箱
rpc verifyUserEmail(VerifyUserEmailRequest) returns (VerifyUserEmailResponse);
// 发送邮箱认证
rpc sendUserEmailVerification(SendUserEmailVerificationRequest) returns (RPCSuccess);
// 查找用户正在等待激活的认证
rpc findLatestUserEmailVerification(FindLatestUserEmailVerificationRequest) returns (FindLatestUserEmailVerificationResponse);
}
// 认证邮箱
message VerifyUserEmailRequest {
string code = 1; // 激活码
}
message VerifyUserEmailResponse {
int64 userId = 1; // 邮箱对应的用户ID
string email = 2; // 邮箱地址
string errorCode = 3; // 错误代号,如果为空,说明没有错误
string errorMessage = 4; // 错误信息
}
// 发送邮箱认证
message SendUserEmailVerificationRequest {
string email = 1; // 待验证邮箱
}
// 查找用户正在等待激活的认证
message FindLatestUserEmailVerificationRequest {
}
message FindLatestUserEmailVerificationResponse {
UserEmailVerification userEmailVerification = 1;
}