Files
ocean/rpc/user.proto
2025-05-22 19:39:08 +08:00

82 lines
1.9 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package user;
option go_package = "./user";
// 用户服务 - 注册、登录、登出、获取用户信息、健康检查
service User {
// 健康检查
rpc Ping (PingRequest) returns (PingResponse);
// 用户注册
rpc Register (RegisterRequest) returns (RegisterResponse);
// 用户登录,返回 JWT Token
rpc Login (LoginRequest) returns (LoginResponse);
// 用户登出,可选实现
rpc Logout (LogoutRequest) returns (LogoutResponse);
// 获取用户信息
rpc GetUserInfo (GetUserInfoRequest) returns (GetUserInfoResponse);
}
// 健康检查请求
message PingRequest {
string ping = 1;
}
// 健康检查响应
message PingResponse {
string pong = 1;
}
// 注册请求
message RegisterRequest {
string username = 1; // 用户名
string password = 2; // 密码(明文或哈希后)
string email = 3; // 邮箱,可选
}
// 注册响应
message RegisterResponse {
string user_id = 1; // 新注册用户的唯一 ID
}
// 登录请求
message LoginRequest {
string username = 1; // 用户名
string password = 2; // 密码
}
// 登录响应
message LoginResponse {
string token = 1; // JWT 访问令牌
int64 expires_at = 2; // 过期时间Unix 时间戳)
}
// 登出请求
message LogoutRequest {
string token = 1; // 要废弃的 JWT
}
// 登出响应
message LogoutResponse {
bool success = 1; // 是否登出成功
}
// 获取用户信息请求
message GetUserInfoRequest {
string user_id = 1; // 目标用户 ID
}
// 获取用户信息响应
message GetUserInfoResponse {
string user_id = 1; // 用户唯一 ID
string username = 2; // 用户名
string email = 3; // 用户邮箱
int64 created_at = 4; // 账号创建时间Unix 时间戳)
repeated string roles = 5; // 用户角色列表,可选
}