2026-04-25 13:21:39 +08:00

86 lines
2.2 KiB
Protocol Buffer

syntax = "proto3";
package hyapp.user.v1;
import "api/proto/user/v1/user.proto";
option go_package = "hyapp/api/proto/user/v1;userv1";
// AuthToken 是登录和刷新后返回给 gateway 的令牌集合。
message AuthToken {
int64 user_id = 1;
string session_id = 2;
string access_token = 3;
string refresh_token = 4;
int64 expires_in_sec = 5;
string token_type = 6;
string display_user_id = 7;
string default_display_user_id = 8;
string display_user_id_kind = 9;
int64 display_user_id_expires_at_ms = 10;
}
// 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;
}
// AuthResponse 返回标准认证令牌。
message AuthResponse {
AuthToken token = 1;
bool is_new_user = 2;
}
// 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;
}
// 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);
}