Я настроил как revoke, так и выход из системы конечные точки, как указано ниже.
.AddOpenIdConnectServer(options =>
{
options.LogoutEndpointPath = "/logout";
options.RevocationEndpointPath = "/revoke";
}
Но оба не работают Аннулирование токена не истекает / аннулирует токен.
Для Token Revocation , я отладил код и обнаружил, что он отклоняет контекст в OpenIdConnectServerHandler классе в нижеприведенном коде.
var context = new ValidateRevocationRequestContext(Context, Scheme, Options, request); await Provider.ValidateRevocationRequest(context);
context.IsRejected после истечения указанного выше метода
Запрос (post) содержит clientId, clientsecret, токен в качестве токена доступа или токена обновления и token_hint_type.Я не понимаю, почему это происходит?
Обновление 1:
Сделано подтверждение контекста по приведенному ниже коду.
public override async Task ValidateRevocationRequest(ValidateRevocationRequestContext context) { context.Validate(); }
Теперь, отладив код ASOS, я узнал, что встроенной логики для отзыва токена нет, я прав?если это сценарий, то мне нужно написать свою собственную логику для отзыва токена в
public override async Task HandleRevocationRequest(HandleRevocationRequestContext context) {.. code }
Теперь мне интересно, как можно отозвать токен (доступ и обновление)потому что они самодостаточны и не хранятся в БД, как openiddict (я посмотрел логику отзыва openiddict).