вызов URL-адреса OKTA из приложения Angular дает 404, но работает в браузере

у меня есть сценарий, в котором я должен вызвать URL-адрес OKTA "{}/api/v1/sessions/me" в угловом приложении. я не использую какую-либо библиотеку, просто делаю простой вызов. я использую такой код

const headers = new HttpHeaders().set('Content-Type', 'application/json; charset=utf-8');
this.http
  .get<SessionInfo[]>(`https://xxx.xxx.com/api/v1/sessions/me`, { headers })
  .subscribe((data: SessionInfo[]) => {
    alert(data);
  });

и SessionInfo выглядит так

export class SessionInfo {
userId: string;
login: string;
  }

когда я запускаю URL-адрес в браузере, я получаю правильный ответ.

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

до этого у меня была проблема с CORS, но я исправил ее на панели инструментов okta и добавил localhost: 8080 в список CORS. после этого я получаю 404.

Любые идеи ?

обновить https://devforum.okta.com/t/get-current-session-api-not-returning-session/3758 обсуждение здесь заставляет меня поверить, что это как-то связано с файлами cookie. моя цель - получить идентификатор текущего пользователя, но похоже, что мы не можем прочитать файлы cookie с другого URL-адреса.

обновление 2 Я сделал простую html-страницу и разместил ее с помощью простого сервера nodejs. Я получил ответ. и делая то же самое из angular, я получаю 404

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


person Raas Masood    schedule 13.05.2020    source источник


Ответы (1)


Я сопоставил заголовок index.html и заголовок, который отправлял angular. index.html отправлял файлы cookie, которые angular не отправлял. поэтому, установив { withCredentials: true }) Angular делает то же самое.

 .get<SessionInfo>(`https://tenet.oktapreview.com/api/v1/sessions/me`, { withCredentials: true })
person Raas Masood    schedule 18.05.2020