Nuuvify.CommonPack.Security.JwtStore.Ef
2.5.1-test.26061402
See the version list below for details.
dotnet add package Nuuvify.CommonPack.Security.JwtStore.Ef --version 2.5.1-test.26061402
NuGet\Install-Package Nuuvify.CommonPack.Security.JwtStore.Ef -Version 2.5.1-test.26061402
<PackageReference Include="Nuuvify.CommonPack.Security.JwtStore.Ef" Version="2.5.1-test.26061402" />
<PackageVersion Include="Nuuvify.CommonPack.Security.JwtStore.Ef" Version="2.5.1-test.26061402" />
<PackageReference Include="Nuuvify.CommonPack.Security.JwtStore.Ef" />
paket add Nuuvify.CommonPack.Security.JwtStore.Ef --version 2.5.1-test.26061402
#r "nuget: Nuuvify.CommonPack.Security.JwtStore.Ef, 2.5.1-test.26061402"
#:package Nuuvify.CommonPack.Security.JwtStore.Ef@2.5.1-test.26061402
#addin nuget:?package=Nuuvify.CommonPack.Security.JwtStore.Ef&version=2.5.1-test.26061402&prerelease
#tool nuget:?package=Nuuvify.CommonPack.Security.JwtStore.Ef&version=2.5.1-test.26061402&prerelease
Nuuvify.CommonPack.Security.JwtStore.Ef
Pacote de persistência para chaves e cache de tokens usando Entity Framework Core em conjunto com Nuuvify.CommonPack.Security.JwtCredentials.
Ele fornece extensões para trocar o store em memória por armazenamento em banco e para persistir o cache de tokens em um contexto EF compatível.
O que o pacote oferece
- persistência de chaves JWK em banco de dados via
PersistKeysToDatabaseStore<TContext> - persistência de cache de tokens via
PersistCacheTokenToDatabaseStore<TContext> - contratos de contexto para chaves e tokens:
ISecurityKeyContexteIJwtCacheContext - integração com
IJwksBuilderdo pacoteJwtCredentials
Quando usar
Use este pacote quando a aplicação emissora de tokens precisar:
- persistir chaves privadas/públicas em banco via Entity Framework Core
- persistir tokens em cache de banco em vez de depender apenas de memória
- centralizar armazenamento de chaves e cache em um
DbContextcontrolado pela aplicação
Pré-requisito
Este pacote depende do fluxo iniciado por AddJwksManager do pacote Nuuvify.CommonPack.Security.JwtCredentials.
Persistência de chaves no banco
Para persistir chaves, use PersistKeysToDatabaseStore<TContext> com um contexto que implemente ISecurityKeyContext.
builder.Services
.AddJwksManager()
.PersistKeysToDatabaseStore<MySecurityDbContext>();
O contexto precisa expor:
public class MySecurityDbContext : DbContext, ISecurityKeyContext
{
public DbSet<SecurityKeyWithPrivate> SecurityKeys { get; set; }
}
Persistência do cache de tokens no banco
Para persistir tokens, use PersistCacheTokenToDatabaseStore<TContext> com um contexto que implemente IJwtCacheContext.
builder.Services
.AddJwksManager()
.PersistCacheTokenToDatabaseStore<MyTokenDbContext>();
O contexto precisa expor:
public class MyTokenDbContext : DbContext, IJwtCacheContext
{
public DbSet<JwtCacheToken> Tokens { get; set; }
}
Exemplo combinando os dois stores
Quando o mesmo contexto atender ambos os contratos, o builder pode ser encadeado:
builder.Services
.AddJwksManager(options =>
{
options.Algorithm = Algorithm.ES256;
})
.PersistKeysToDatabaseStore<MySecurityDbContext>()
.PersistCacheTokenToDatabaseStore<MySecurityDbContext>();
Comportamento observável do store de tokens
O store de tokens trabalha com operações de:
- leitura por usuário e tipo de cache
- gravação de token serializado com expiração absoluta
- remoção por usuário
- limpeza global do cache persistido
O pacote usa IDistributedCache resolvido por chave e aplica expiração baseada no campo Expires do token persistido.
Observações de implementação
- este pacote é destinado principalmente à aplicação que gera e controla o ciclo de vida dos tokens
- os contextos EF devem mapear corretamente
SecurityKeyWithPrivateeJwtCacheToken - mudanças no schema dessas entidades devem ser tratadas como mudança operacional relevante
- a persistência substitui o store em memória do fluxo padrão quando registrada no container
Pacotes relacionados
Nuuvify.CommonPack.Security.JwtCredentials: builder e serviços centrais de JWK/JWKSNuuvify.CommonPack.Security: setup base de autenticação e autorização
Validação recomendada ao alterar este pacote
- resolução correta do store via DI
- persistência e leitura de chaves no contexto EF
- persistência, leitura e remoção de tokens por usuário
- expiração aplicada ao cache do token
- compatibilidade do contexto EF com os contratos
ISecurityKeyContexteIJwtCacheContext
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.EntityFrameworkCore (>= 8.0.11)
- Nuuvify.CommonPack.Security.JwtCredentials (>= 2.5.1-test.26061402)
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-test.25052502 | 0 | 5/25/2025 |
| 2.5.1-test.26061402 | 0 | 6/14/2026 |
| 2.5.0-test.26060608 | 0 | 6/6/2026 |
| 2.5.0-test.26060606 | 0 | 6/6/2026 |
| 2.4.0-test.26060602 | 0 | 6/6/2026 |
| 2.4.0-test.26041707 | 0 | 4/17/2026 |
| 2.3.0-test.26033106 | 0 | 3/31/2026 |
| 2.2.0-test.25102904 | 0 | 10/29/2025 |
| 2.2.0-test.25102902 | 0 | 10/29/2025 |
| 2.1.0-test.25101302 | 1 | 10/13/2025 |
| 2.1.0-test.25101102 | 0 | 10/12/2025 |
| 2.1.0-test.25100702 | 0 | 10/8/2025 |
| 2.1.0-test.25100602 | 0 | 10/6/2025 |
| 2.1.0-test.25100507 | 0 | 10/6/2025 |
| 2.1.0-test.25100503 | 0 | 10/5/2025 |
| 2.1.0-test.25093008 | 0 | 9/30/2025 |
# Changelog - Nuuvify.CommonPack.Security.JwtStore.Ef
Todas as mudanças notáveis deste pacote serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-br/1.0.0/),
e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/spec/v2.0.0.html).
## [Não Lançado]
### Adicionado
### Alterado
### Corrigido
### Removido
### Segurança
## [Sem versão registrada] - 2026-05-29
### Adicionado
- Estrutura inicial do changelog padronizada para este pacote.