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
<PackageReference Include="Astrolabe.OIDC.EF" Version="1.0.1" />
<PackageVersion Include="Astrolabe.OIDC.EF" Version="1.0.1" />
<PackageReference Include="Astrolabe.OIDC.EF" />
paket add Astrolabe.OIDC.EF --version 1.0.1
#r "nuget: Astrolabe.OIDC.EF, 1.0.1"
#:package Astrolabe.OIDC.EF@1.0.1
#addin nuget:?package=Astrolabe.OIDC.EF&version=1.0.1
#tool nuget:?package=Astrolabe.OIDC.EF&version=1.0.1
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 | 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
- Astrolabe.OIDC (>= 1.0.1)
- Microsoft.EntityFrameworkCore (>= 8.0.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.