using System.Security.Cryptography; using SIGCM2.Application.Abstractions.Security; namespace SIGCM2.Infrastructure.Security; public sealed class RefreshTokenGenerator : IRefreshTokenGenerator { public string Generate() { Span bytes = stackalloc byte[32]; RandomNumberGenerator.Fill(bytes); return Convert.ToBase64String(bytes) .TrimEnd('=') .Replace('+', '-') .Replace('/', '_'); } }