first commit

This commit is contained in:
Vitalii Litvinchuk
2026-06-13 23:23:50 +03:00
commit 23958e8e2c
72 changed files with 6142 additions and 0 deletions
@@ -0,0 +1,28 @@
using MediatR;
using Microsoft.AspNetCore.Http;
using SequenceAuth.Lib;
namespace SequenceAuth.Example.Features.Auth;
public record LogoutCommand() : IRequest;
public class LogoutCommandHandler(ISequenceStore sequenceStore, IHttpContextAccessor httpContextAccessor, Microsoft.Extensions.Options.IOptions<SequenceAuthOptions> options) : IRequestHandler<LogoutCommand>
{
public async Task Handle(LogoutCommand request, CancellationToken cancellationToken)
{
var userIdStr = httpContextAccessor.HttpContext?.Items[options.Value.UserIdItemKey]?.ToString();
var isUserIdPresent = string.IsNullOrEmpty(userIdStr);
_ = isUserIdPresent switch
{
false => await ProcessLogout(userIdStr!),
true => 0
};
}
private async Task<int> ProcessLogout(string userId)
{
await sequenceStore.InvalidateUserSessionsAsync(userId);
return 1;
}
}