Политика CORS блокирует приложение localhost, но не Postman - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь настроить управление API, и первым делом нужно настроить Oauth в экземпляре управления API. [Edit] Возможно, важно упомянуть, что клиентское приложение не заинтересовано в аутентификации пользователей - я просто хочу использовать это как механизм авторизации для клиентского приложения и приложения API.

У меня есть Политика CORS для моего входящего трафика, которая выглядит следующим образом:

<cors allow-credentials="true">
        <allowed-origins>
            <origin>http://localhost:4200</origin>
        </allowed-origins>
        <allowed-methods>
            <method>GET</method>
            <method>POST</method>
        </allowed-methods>
        <allowed-headers>
            <header>content-type</header>
            <header>accept</header>
        </allowed-headers>
    </cors>

Я могу попасть в конечную точку Token и получить обратно токен доступа с помощью Postman на моем локальном компьютере (что, как я ожидал, не будет разрешено с учетом разрешенных - исходная конфигурация:

enter image description here

Тот же запрос от приложения Angular, запущенного на локальном хосте: 4200 заблокирован CORS:

enter image description here

Я прочитал все, что мог, о настройке управления API для обработки CORS, но я застрял. Что я делаю не так?

Потому что я могу делает что-то не так в Angular, вот мой звонок:

const config = environment.authConfig;
const body = new HttpParams()
  .set('grant_type', config.grantType)
  .set('client_id', config.clientId)
  .set('scope', config.scope)
  .set('client_secret', config.clientSecret);
let options = {
  headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')
}
return this.http.post<Auth0AccessResponse>(config.tokenUrl, body.toString(), options);

enter image description here

...