извикването на OKTA url от приложението Angular дава 404, но работи в браузър

имам сценарий, при който трябва да извикам OKTA url „{}/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 дискусията тук ме кара да вярвам, че има нещо общо с бисквитките. моите цели са да взема ID на текущия потребител, но изглежда, че не можем да четем бисквитки от друг url.

актуализация 2 Направих проста html страница и я хоствах с помощта на обикновен nodejs сървър, получавам отговор. и правя същото от angular, получавам 404

въведете описание на изображението тук въведете описание на изображението тук


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


Отговори (1)


Съпоставих заглавката на index.html и заглавката, която изпраща angular. index.html изпращаше бисквитки, които angular не изпращаха. така че като зададете { withCredentials: true }) Angular прави същото.

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