107 lines
2.7 KiB
Protocol Buffer
107 lines
2.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package hyapp.user.v1;
|
|
|
|
import "proto/user/v1/user.proto";
|
|
|
|
option go_package = "hyapp.local/api/proto/user/v1;userv1";
|
|
|
|
// LoginPasswordRequest 使用当前 display_user_id 和已设置密码登录。
|
|
message LoginPasswordRequest {
|
|
RequestMeta meta = 1;
|
|
string display_user_id = 2;
|
|
string password = 3;
|
|
}
|
|
|
|
// LoginThirdPartyRequest 使用三方凭证登录或注册。
|
|
message LoginThirdPartyRequest {
|
|
RequestMeta meta = 1;
|
|
string provider = 2;
|
|
string credential = 3;
|
|
string username = 4;
|
|
string gender = 5;
|
|
string country = 6;
|
|
string invite_code = 7;
|
|
string device_id = 8;
|
|
string device = 9;
|
|
string avatar = 10;
|
|
string birth = 11;
|
|
string app_version = 12;
|
|
string source = 13;
|
|
string platform = 14;
|
|
string language = 15;
|
|
string os_version = 16;
|
|
string build_number = 17;
|
|
string timezone = 18;
|
|
string install_channel = 19;
|
|
string campaign = 20;
|
|
}
|
|
|
|
// AuthResponse 返回标准认证令牌。
|
|
message AuthResponse {
|
|
AuthToken token = 1;
|
|
bool is_new_user = 2;
|
|
bool profile_completed = 3;
|
|
string onboarding_status = 4;
|
|
}
|
|
|
|
// SetPasswordRequest 为已经三方登录的用户首次设置密码。
|
|
message SetPasswordRequest {
|
|
RequestMeta meta = 1;
|
|
int64 user_id = 2;
|
|
string password = 3;
|
|
}
|
|
|
|
// SetPasswordResponse 返回密码是否已经成功设置。
|
|
message SetPasswordResponse {
|
|
bool password_set = 1;
|
|
}
|
|
|
|
// RefreshTokenRequest 使用 refresh token 换取新 token。
|
|
message RefreshTokenRequest {
|
|
RequestMeta meta = 1;
|
|
string refresh_token = 2;
|
|
}
|
|
|
|
// RefreshTokenResponse 返回轮换后的令牌。
|
|
message RefreshTokenResponse {
|
|
AuthToken token = 1;
|
|
}
|
|
|
|
// LogoutRequest 失效指定会话或 refresh token。
|
|
message LogoutRequest {
|
|
RequestMeta meta = 1;
|
|
string session_id = 2;
|
|
string refresh_token = 3;
|
|
}
|
|
|
|
// LogoutResponse 返回会话是否被失效。
|
|
message LogoutResponse {
|
|
bool revoked = 1;
|
|
}
|
|
|
|
// RecordLoginBlockedRequest 记录 gateway 入口快拦拒绝的登录审计。
|
|
message RecordLoginBlockedRequest {
|
|
RequestMeta meta = 1;
|
|
string channel = 2;
|
|
string platform = 3;
|
|
string language = 4;
|
|
string timezone = 5;
|
|
string block_reason = 6;
|
|
}
|
|
|
|
// RecordLoginBlockedResponse 返回审计写入是否成功。
|
|
message RecordLoginBlockedResponse {
|
|
bool recorded = 1;
|
|
}
|
|
|
|
// AuthService 承载登录注册和 token 生命周期能力。
|
|
service AuthService {
|
|
rpc LoginPassword(LoginPasswordRequest) returns (AuthResponse);
|
|
rpc LoginThirdParty(LoginThirdPartyRequest) returns (AuthResponse);
|
|
rpc SetPassword(SetPasswordRequest) returns (SetPasswordResponse);
|
|
rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse);
|
|
rpc Logout(LogoutRequest) returns (LogoutResponse);
|
|
rpc RecordLoginBlocked(RecordLoginBlockedRequest) returns (RecordLoginBlockedResponse);
|
|
}
|