AuthEndpoints 1.6.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package AuthEndpoints --version 1.6.0                
NuGet\Install-Package AuthEndpoints -Version 1.6.0                
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="AuthEndpoints" Version="1.6.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add AuthEndpoints --version 1.6.0                
#r "nuget: AuthEndpoints, 1.6.0"                
#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.
// Install AuthEndpoints as a Cake Addin
#addin nuget:?package=AuthEndpoints&version=1.6.0

// Install AuthEndpoints as a Cake Tool
#tool nuget:?package=AuthEndpoints&version=1.6.0                

AuthEndpoints

nuget issues downloads workflow CodeFactor license

A simple jwt authentication library for ASP.Net 6. AuthEndpoints library provides a set of Web API controllers and 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. AuthEndpoints is built with the aim of increasing developer productivity.

Features

  • Supported endpoints:
    • sign-up
    • sign-in (create jwt)
    • email verification
    • refresh jwt
    • verify jwt
    • user profile (retrieving)
    • reset password
    • change password
    • enable 2fa & login 2fa (via email)
  • JWT support
  • Works with a symmetric key (shared secret) or asymmetric keys (the private key of a private–public pair).
  • Works with custom identity user

Current limitations

  • Only works with IdentityUser or custom identity user
  • No session based auth support
  • 2fa via email

Installing via NuGet

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

Quick start

Add DbSet<RefreshToken> to dbcontext:

using AuthEndpoints.Core.Models;

DbSet<RefreshToken>? RefreshTokens { get; set; }

Add the required identity services:

builder.Services
  .AddIdentityCore<MyCustomIdentityUser>() // <-- or `AddIdentity<,>`
  .AddEntityFrameworkStores<MyDbContext>() // <--
  .AddDefaultTokenProviders();             // <--

Next, let's add auth endpoints services and jwt bearer authentication scheme:

builder.Services
  // When no options provided, 
  // AuthEndpoints will automatically create a secret key and use single security key
  // for each access jwt and refresh jwt (symmetric encryption).
  // Secrets will be created under `keys/` directory.
  .AddAuthEndpointsCore<string, MyCustomIdentityUser>() // <TUserKey, TUser>
  .AddRefreshTokenStore<MyDbContext>()
  .AddAuthEndpointDefinitions(); // Add endpoint definitions

then finally, call app.MapEndpoints() before app.Run():


var app = builder.Build();

...

app.UseAuthentication();
app.UseAuthorization();

...

app.MapEndpoints(); // <--

app.Run();

Checkout docs for more info.

Documentations

Documentation is available at https://madeyoga.github.io/AuthEndpoints/ and in docs directory.

Contributing

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 documentation is far from perfect so every bit of help is more than welcome.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
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
2.2.0 1,104 9/24/2022
2.1.1 984 9/9/2022
2.1.0 1,015 9/9/2022 2.1.0 is deprecated because it has critical bugs.
2.0.2 1,023 9/3/2022
2.0.1 949 8/31/2022
2.0.0 1,010 8/22/2022 2.0.0 is deprecated because it has critical bugs.
1.7.0 1,021 8/10/2022 1.7.0 is deprecated because it is no longer maintained.
1.6.0 1,007 8/8/2022 1.6.0 is deprecated because it is no longer maintained.
1.5.0 957 8/2/2022 1.5.0 is deprecated because it is no longer maintained.
1.4.9 1,028 7/30/2022 1.4.9 is deprecated because it is no longer maintained.
1.4.8 1,002 7/27/2022 1.4.8 is deprecated because it is no longer maintained.
1.4.7 1,109 7/17/2022 1.4.7 is deprecated because it is no longer maintained.
1.4.6 992 6/25/2022 1.4.6 is deprecated because it is no longer maintained.
1.4.5 1,000 6/20/2022 1.4.5 is deprecated because it is no longer maintained.
1.4.4 1,012 6/18/2022 1.4.4 is deprecated because it is no longer maintained.
1.4.3 975 6/16/2022 1.4.3 is deprecated because it is no longer maintained.
1.4.2 1,062 6/14/2022 1.4.2 is deprecated because it is no longer maintained.
1.4.1 1,027 6/11/2022 1.4.1 is deprecated because it is no longer maintained.
1.4.0 1,074 6/6/2022 1.4.0 is deprecated because it is no longer maintained.
1.3.0 1,002 6/2/2022 1.3.0 is deprecated because it is no longer maintained.
1.2.0 1,003 5/30/2022 1.2.0 is deprecated because it is no longer maintained.
1.1.0 1,009 5/26/2022 1.1.0 is deprecated because it is no longer maintained.
1.0.1 980 5/25/2022 1.0.1 is deprecated because it is no longer maintained.
1.0.0 1,012 5/24/2022 1.0.0 is deprecated because it is no longer maintained.

Using core & Minimal Api 1.6.0