namespace OnlineMsgServer.Common
{
public class User(string ID)
{
///
/// ws连接生成的唯一uuid
///
public string ID { get; set; } = ID;
///
/// 用户名,在客户端随意指定
///
public string? Name { get; set; }
///
/// 用户公钥 用于消息加密发送给用户
///
public string? PublicKey { get; set; }
///
/// 是否通过鉴权
///
public bool IsAuthenticated { get; set; }
///
/// 连接来源IP
///
public string? IpAddress { get; set; }
///
/// 服务端下发的一次性 challenge
///
public string? PendingChallenge { get; set; }
///
/// challenge 下发时间(UTC)
///
public DateTime ChallengeIssuedAtUtc { get; set; } = DateTime.UtcNow;
///
/// 登录成功时间(UTC)
///
public DateTime? AuthenticatedAtUtc { get; set; }
///
/// 防重放 nonce 缓存(nonce -> unix timestamp)
///
public Dictionary ReplayNonceStore { get; } = [];
///
/// 限流窗口内请求时间戳(unix ms)
///
public Queue RequestTimesMs { get; } = new();
}
}