A simple jwt authentication library for ASP.Net 6. AuthEndpoints library provides a set of minimal api endpoints to handle basic web & JWT authentication actions such as registration, email verification, reset password, create jwt, etc. It works with custom identity user model.
- Users API:
- sign-up
- email verification
- user profile (retrieving)
- reset password
- change password
- enable 2fa
- login 2fa
- TokenAuth:
- Create (login)
- Destroy (logout)
- Simple JWT:
- Create (login)
- Refresh
- Verify
- Only works with IdentityUser & EfCore
- 2fa via email
The easiest way to install AuthEndpoints is via NuGet
Install the library using the following .net cli command:
dotnet add package AuthEndpoints
or in Visual Studio's Package Manager Console, enter the following command:
Install-Package AuthEndpoints
// MyDbContext.cs
using AuthEndpoints.SimpleJwt.Core.Models;
public class MyDbContext : IdentityDbContext
{
public DbSet<RefreshToken>? RefreshTokens { get; set; } // <--
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }
}
Add migration and apply migration:
// using dotnet cli
$ dotnet ef migrations add CreateRefreshToken
$ dotnet ef database update
// or using package manager console in visual studio
PM> Add-Migration CreateRefreshToken
PM> Update-Database
Add endpoints and call app.MapEndpoints()
before app.Run();
// Program.cs
// Required services
builder.Services.AddIdentityCore<IdentityUser>(); // <--
// Add core services & users api
builder.Services.AddAuthEndpointsCore<IdentityUser, MyDbContext>() // <--
.AddUsersApiEndpoints()
.Add2FAEndpoints();
// Add jwt endpoints
// When no options are provided
// AuthEndpoints will create a secret key and use a single security key (symmetric encryption)
// for each access jwt and refresh jwt.
// Secrets will be created under `keys/` directory.
builder.Services.AddSimpleJwtEndpoints<IdentityUser, MyDbContext>(); // <--
var app = builder.Build();
...
app.UseAuthentication(); // <--
app.UseAuthorization(); // <--
...
app.MapEndpoints(); // <--
app.Run();
Documentation is available at https://madeyoga.github.io/AuthEndpoints/ and in docs directory.
Your contributions are always welcome! simply send a pull request! The up-for-grabs label is a great place to start. If you find a flaw, please open an issue or a PR and let's sort things out.
The project is far from perfect so every bit of help is more than welcome.