forked from gongxuegit/tiku-backend.net
feat(security): add distributed authorization foundation
This commit is contained in:
23
Tiku.Application/Security/IRedisSecurityStore.cs
Normal file
23
Tiku.Application/Security/IRedisSecurityStore.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace Tiku.Application.Security;
|
||||
|
||||
public sealed record DistributedRateLimitBucket(string Key, int PermitLimit, TimeSpan Window);
|
||||
|
||||
public sealed record DistributedRateLimitResult(bool Allowed, TimeSpan? RetryAfter = null);
|
||||
|
||||
public interface IRedisSecurityStore
|
||||
{
|
||||
bool IsConfigured { get; }
|
||||
|
||||
Task<DistributedRateLimitResult> ConsumeAsync(
|
||||
IReadOnlyCollection<DistributedRateLimitBucket> buckets,
|
||||
CancellationToken cancellationToken = default);
|
||||
|
||||
Task<bool> PingAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
Task SetInvalidationVersionAsync(
|
||||
string realm,
|
||||
Guid? tenantId,
|
||||
Guid? userId,
|
||||
long version,
|
||||
CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user