Astrolabe.OIDC.EF 1.0.1

dotnet add package Astrolabe.OIDC.EF --version 1.0.1
                    
NuGet\Install-Package Astrolabe.OIDC.EF -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Astrolabe.OIDC.EF" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Astrolabe.OIDC.EF" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Astrolabe.OIDC.EF" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Astrolabe.OIDC.EF --version 1.0.1
                    
#r "nuget: Astrolabe.OIDC.EF, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Astrolabe.OIDC.EF@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Astrolabe.OIDC.EF&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Astrolabe.OIDC.EF&version=1.0.1
                    
Install as a Cake Tool

Astrolabe.OIDC.EF

Entity Framework Core implementation of IOidcTokenStore for Astrolabe.OIDC. Stores authorization codes, refresh tokens, authorize requests, and external auth state in a single database table with JSON-serialized data.

Setup

1. Implement IOidcStoreDbContext on your DbContext

using Astrolabe.OIDC.EF;

public class AppDbContext : DbContext, IOidcStoreDbContext
{
    public DbSet<OidcStoreEntry> OidcTokens { get; set; }

    public DbSet<OidcStoreEntry> GetOidcStoreEntries() => OidcTokens;
}

The DbSet property name controls the table name (e.g. OidcTokens creates a table called OidcTokens).

2. Register the store before AddOidcEndpoints

builder.Services.AddEfOidcTokenStore<AppDbContext>();
builder.Services.AddOidcEndpoints<MyOidcEndpoints>(oidcConfig);

AddEfOidcTokenStore must be called before AddOidcEndpoints, which registers the default in-memory store via TryAddSingleton.

3. Add a migration

dotnet ef migrations add AddOidcStoreEntries

Table Schema

All four stored types share one table:

Column Type Description
Key string (PK, 256) Lookup key (code, token value, request ID, state value)
Type string (20) Discriminator: AuthCode, RefreshToken, AuthRequest, ExternalAuth
Data string (max) JSON-serialized payload
ExpiresAt DateTimeOffset Expiry timestamp

Cleanup

Expired entries are not automatically purged. Call CleanupExpired() periodically (e.g. via a background service):

var store = serviceProvider.GetRequiredService<IOidcTokenStore>();
if (store is EntityFrameworkOidcTokenStore<AppDbContext> efStore)
{
    await efStore.CleanupExpired();
}
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 73 3/4/2026
1.0.0 132 3/4/2026