Я пытаюсь авторизовать мой angular клиент с сервером идентификации. Ниже приведены настройки для моего angular клиента.
authority: 'http://localhost:5000',
client_id: 'clientid',
redirect_uri: 'https://localhost:44384/auth-callback',
post_logout_redirect_uri: 'https://localhost:44384/',
response_type: "code",
scope: "openid profile",
filterProtocolClaims: true,
loadUserInfo: true,
automaticSilentRenew: true,
silent_redirect_uri: 'http://localhost:44384/silent-refresh.html'
Аналогичный клиент зарегистрирован на стороне IdentityServer.
new Client
{
ClientId = "clientid",
AllowedScopes = { "openid", "profile" },
AllowedGrantTypes = GrantTypes.Code,
RequirePkce = true,
RequireClientSecret = false,
AllowAccessTokensViaBrowser = true,
AllowOfflineAccess = false,
AccessTokenLifetime = 3600,
RedirectUris={"https://localhost:44384/auth-callback" },
PostLogoutRedirectUris= {"https://localhost:44384/" },
RequireConsent= false
}
, и он работал нормально. но когда я перенес те же настройки клиента в базу данных, это дало мне неверный тип предоставления для клиента .
Ниже приведены журналы VS
[15:15:56 Отладка] IdentityServer4.EntityFramework.Stores.ClientStore clientid найдено в базе данных: True
[15:15:56 Отладка ] IdentityServer4.Stores.ValidatingClientStore успешно выполнена проверка конфигурации клиента для клиентской клиентской базы.
[15:15:56 Debug] IdentityServer4.Validation.AuthorizeRequestValidator Проверка параметров PKCE
[15:15:56 Ошибка ] IdentityServer4.Validation.AuthorizeRequestValidator: Неверный тип предоставления для клиента: код авторизации
Данные базы данных для клиента следующие.
и для grantType.