У меня есть приложение SPA на основе Asp.Net Core 3.0 (Angular 8) с Identity Server 4, настроенное и работающее нормально, особенно вход в систему, обновление токена, выход из системы и т. Д.
startup.cs
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryPersistedGrants()
.AddInMemoryIdentityResources(IdentityServerConfig.GetIdentityResources())
.AddInMemoryApiResources(IdentityServerConfig.GetApiResources())
.AddInMemoryClients(IdentityServerConfig.GetClients())
.AddAspNetIdentity<ApplicationUser>()
.AddProfileService<ProfileService>();
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(options =>
{
options.Authority = Configuration["AppSettings:ApplicationUrl"].TrimEnd('/');
options.SupportedTokens = SupportedTokens.Jwt;
options.RequireHttpsMetadata = true;
options.ApiName = IdentityServerConfig.ApiName;
});
Функция входа на мою угловую страницу использует конечную точку «/ connect / token» с потоком «пароля» владельца ресурса для получения id_token
, refresh_token
, claims
и т. Д.
MyТребуется ввести recaptcha
на странице входа в угловое приложение. Я застрял здесь, потому что поток входа обрабатывается сервером идентификации, и нет Authorize
контроллера или Signin
метода действия для проверки recaptcha
перед выдачей токена.
Как я могу проверить recaptcha
до аутентификации пользователя.
Есть ли способ переопределить или перехватить метод connect / token в ядре asp.net перед выдачей токена клиенту?