XMLHttpRequest был заблокирован политикой CORS - https://openid -connect-eu.onelogin.com / oidc / token - PullRequest
0 голосов
/ 22 мая 2019

Я настраиваю onelogin и пришел к этому шагу, где я должен отправить еще один запрос POST с указанным кодом из первого запроса GET (https://developers.onelogin.com/openid-connect/api/authorization-code-grant).

Они говорят, что я должен отправить запрос POSTна этот URL https: //.onelogin.com/oidc/token и я отправляю запрос с Angular 7.

    const headers = new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': `Basic <base64 encoded ${environment.clientId}:${environment.clientSecret}`
    });
    const options = {
      headers: headers
    };
    const body = {
      grant_type: 'authorization_code',
      code: code,
      redirect_url: this.getCallbackURL(),
      client_id: environment.clientId,
      client_secret: environment.clientSecret
    };
    return this.httpClient.post('https://openid-connect-eu.onelogin.com/oidc/token', body, options).toPromise();

Но тогда я получаю эту ошибку:

Доступ к XMLHttpRequestв 'https://openid -connect-eu.onelogin.com / oidc / token ' из источника 'https://my -site-name.com ' заблокировано политикой CORS:Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

ПРИМЕЧАНИЕ: заменен на openid-connect-eu, как я вEU, как описано в документации.

1 Ответ

1 голос
/ 23 мая 2019

Javascript предотвращает POST-вызовы в другие домены на уровне браузера, если только они явно не разрешены службой (и OneLogin не разрешает это по соображениям безопасности)

Я добавлю, что выполнение этого процесса аутентификациичерез Javascript не считается безопасным, поскольку любой может перехватить clientID и Secret из вашего кода.

Для приложений javascript я бы рекомендовал использовать неявный поток OIDC, который описан здесь:

https://developers.onelogin.com/openid-connect/api/id-token

OneLogin также имеет пример кода для этого:

https://github.com/onelogin/onelogin-oidc-node/tree/master/2.%20Implicit%20Flow

...