syntax = "proto3"; package auth; import "common.proto"; service AuthService { rpc Login(LoginRequest) returns (LoginResponse); rpc Logout(LogoutRequest) returns (common.Empty); rpc ValidateToken(ValidateTokenRequest) returns (ValidateTokenResponse); rpc ValidateSession(ValidateSessionRequest) returns (ValidateSessionResponse); rpc RefreshSession(ValidateSessionRequest) returns (RefreshSessionResponse); rpc Register (RegisterRequest) returns (RegisterResponse); rpc RequestPasswordReset (PasswordResetRequest) returns (PasswordResetResponse); rpc ResetPassword (ResetPasswordRequest) returns (ResetPasswordResponse); } message LoginRequest { string username = 1; string password = 2; string ip_address = 3; } message LoginResponse { string token = 1; string user_id = 2; string session_id = 3; } message LogoutRequest { string session_id = 1; } message ValidateTokenRequest { string token = 1; } message ValidateTokenResponse { bool valid = 1; string user_id = 2; string session_id = 3; } message ValidateSessionRequest { string session_id = 1; } message ValidateSessionResponse { bool valid = 1; string session_id = 2; string user_id = 3; } message RefreshSessionResponse { bool valid = 1; } message RegisterRequest { string username = 1; string email = 2; string password = 3; } message RegisterResponse { int32 user_id = 1; string message = 2; } message PasswordResetRequest { string email = 1; } message PasswordResetResponse { string message = 1; } message ResetPasswordRequest { string reset_token = 1; string new_password = 2; } message ResetPasswordResponse { string message = 1; }