using SimApi.Exceptions; namespace SimApi.ModelBinders; public abstract class SimApiSignProviderBase { /// /// appId字段的名称 /// public virtual string? AppIdName { get; set; } = "appId"; /// /// 时间戳的字段名 /// public virtual string TimestampName { get; set; } = "timestamp"; /// /// 随机字符串的字段名 /// public virtual string NonceName { get; set; } = "nonce"; /// /// 签名的字段名 /// public virtual string SignName { get; set; } = "sign"; /// /// 请求过期时间, 如果为0, 不校验timestamp /// public virtual int QueryExpires { get; set; } = 5; /// /// 如果开启,必须配置redis, 每次请求将会缓存nonce /// public virtual bool DuplicateRequestProtection { get; set; } = true; public virtual string[] SignFields { get; set; } = []; /// /// 根据appId获取对应的密钥 /// /// 应用ID /// 密钥(返回null表示获取失败) public abstract string? GetKey(string? appId); }