È probabile che ci saranno più applicazioni che hanno bisogno di generare token.
La maggior parte delle aziende desidera centralizzare la sicurezza. A tal fine, non vogliono che le singole applicazioni generino token. Invece creano un componente che gestisce l'aspetto JWT e si aspetta che le applicazioni utilizzino il componente tramite un pacchetto Nuget. Molto probabilmente questo componente farà parte della pipeline del middleware. Quindi tutte le applicazioni utilizzano / generano token JWT allo stesso modo.
Alcuni esempi di codice componente:
public static class JwtMiddlewareExtensions
{
public static IApplicationBuilder UseJwtMiddleware(this IApplicationBuilder builder);
}
A condizione che il pacchetto Nuget sia stato scaricato, quindi all'avvio per utilizzare il componente:
protected virtual void ConfigureAuthorization(IApplicationBuilder app)
{
app.UseJwtMiddleware();
}
Se abbiamo bisogno di un test di integrazione completo, possiamo ignorare l'autorizzazione di sicurezza con la nostra.
protected override void ConfigureAuthorization(IApplicationBuilder app)
{
app.UseMiddleware<AuthMiddleware>();
}
dove AuthMiddleware
è un'implementazione locale simile a questa:
public async Task Invoke(HttpContext context)
{
var identity = (IIdentity)new GenericIdentity("myuserid", "JWT");
var principal = new System.Security.Principal.GenericPrincipal(identity, new[] { "CREATE" });
context.Authentication.HttpContext.User = principal;
await _next.Invoke(context);
}