Код: Выделить всё
services.AddIdentityCore()
.AddRoles()
.AddEntityFrameworkStores()
//.AddClaimsPrincipalFactory()
.AddDefaultTokenProviders();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
services.TryAddScoped();
Код: Выделить всё
public static async Task Logout(
SignInManager signInManager,
IJwtProvider jwtProvider,
ClaimsPrincipal principal)
{
if (!principal.Identity!.IsAuthenticated)
{
return TypedResults.Unauthorized();
}
await signInManager.SignOutAsync();
await jwtProvider.RevokeToken(principal);
return TypedResults.Ok();
}
< /code>
Однако я смог облегчить эту проблему, используя < /p>
options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme
< /code>
вместо < /p>
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme
Код: Выделить всё
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
//options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
Подробнее здесь: [url]https://stackoverflow.com/questions/79508268/multiple-identities-in-claimsprincipal-with-isauthenticated-false-in-jwt[/url]