(токен доступа и токен обновления хорошо сгенерированы и работают)
Экран исключений
System.InvalidOperationException: StatusCode невозможно установить, поскольку ответ уже начался. в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowResponseAlreadyStartedException (строковое значение)
Вот мой AuthController:
Код: Выделить всё
[ApiController]
[Route("[controller]")]
public class AuthController : ControllerBase
{
private readonly ILogger _logger;
private readonly SignInManager _signInManager;
public AuthController(
ILogger logger,
SignInManager signInManager)
{
_logger = logger;
_signInManager = signInManager;
}
[HttpGet("google")]
public IActionResult Login()
{
var properties = _signInManager.ConfigureExternalAuthenticationProperties(
GoogleDefaults.AuthenticationScheme, null);
return Challenge(properties, GoogleDefaults.AuthenticationScheme);
}
}
Код: Выделить всё
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication(IdentityConstants.BearerScheme)
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = "client";
googleOptions.ClientSecret = "secret";
})
.AddBearerToken(IdentityConstants.BearerScheme);
builder.Services.AddAuthorizationBuilder();
builder.Services.AddDbContext(x => x.UseInMemoryDatabase("AuthNet8"));
builder.Services.AddIdentityCore()
.AddEntityFrameworkStores()
.AddApiEndpoints();
builder.Services.AddControllers();
var app = builder.Build();
app.MapGet("/", (ClaimsPrincipal user) => $"Hello {user.Identity.Name}")
.RequireAuthorization();
app.MapControllers();
app.Run();
}
}
Я пробовал изменить порядок промежуточного программного обеспечения, но проблема не устранена.
Подробнее здесь: https://stackoverflow.com/questions/780 ... e-response