CORS — нет «Access-Control-Allow-Origin» при отзыве токена

Я пытаюсь вызвать API /v1/revoke из клиента Angular 6 с неявным потоком OKTA (используя библиотеку angular-oauth2-oidc). Из примера программы я добавляю новую функцию revokeToken(), так как библиотека не реализует функцию отзыва токена. Я включаю "http://localhost:8080" в качестве надежного источника, но все равно получаю следующую ошибку:

Access to XMLHttpRequest at 'https://mydevid.oktapreview.com/oauth2/default/v1/revoke' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Вот установка от OKTA

введите здесь описание изображения

Вот моя функция в компоненте Angular

revokeToken() {
    const httpOptions = {
      headers: new HttpHeaders()
        .set('accept', 'application/json')
        .set('authorization', 'Basic ' + authConfig2.clientId)
        .set('content-type', 'application/json')
    };

    const body = {
      'token': this.access_token,
      'token_type_hint': 'access_token'
    };

    this.http.post(authConfig2.issuer + '/v1/revoke', body, httpOptions)
      .subscribe(console.log);
}

Может кто-нибудь посоветовать, что я сделал не так или не правильно настроил?

Спасибо.


person Zee    schedule 04.03.2019    source источник


Ответы (1)


revoke — это внутренний вызов. Вам нужно вызвать /отозвать с серверной части (сервера). Вы можете проверить эту теорию, попробовав ее через почтальона, и она должна сработать.

person Sara Daqiq    schedule 05.03.2019
comment
Означает ли это, что интерфейсному клиенту безнадежно вызывать /api/revoke? - person Zee; 05.03.2019
comment
Он разработан таким образом из соображений безопасности, поэтому я бы сказал, что вы не сможете использовать конечную точку из внешнего интерфейса. developer.okta.com/docs/api/resources/oidc#revoke API Okta поддерживает CORS, если у него есть логотип CORS рядом с конечной точкой, т. е. developer.okta.com/docs/api/resources/ - person Sara Daqiq; 11.03.2019