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); }