при перенаправлении на страницу входа Microsoft, получая проблему cors для графа Microsoft

Я занимаюсь разработкой API-интерфейса laravel, пользовательский интерфейс — angularjs, проблема заключается в том, что при перенаправлении на страницу входа в Microsoft возникает проблема cors для графа Microsoft, проблема заключается в

XMLHttpRequest не может загрузить
https://reservations-api.nymblpro.com/coordinator/event. Перенаправить с
https://reservations-api.nymblpro.com/coordinator/eventк
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?state=cuSlE1… rect_uri = HTTPS% 3A% 2F% 2Freservations-api.nymblpro.com% 2Fcoordinator% 2Fevent»
был заблокирован политикой CORS: запрос требует предварительной проверки, которая
не разрешено использовать перекрестное перенаправление.

Я попытался установить промежуточное программное обеспечение Cors до сих пор я получаю ту же проблему.
мой код выглядит следующим образом:

public function get_microsoft_token(Request $request)
{
$provider = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId'                => 'fd482697-fd9f-46ac-ab3a-727e47517c8b',
'clientSecret'            => 'WZOh3qLz7ZQyKemCQf3RsCF',
'redirectUri'             => 'https://reservations-api.nymblpro.com/coordinator/event',
'urlAuthorize'            => 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
'urlAccessToken'          => 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
'urlResourceOwnerDetails' => '',
'scopes'                  => 'openid calendars.readwrite'
]);
if (!$request->has('code')) {
return redirect($provider->getAuthorizationUrl());
}
else {
$accessToken = $provider->getAccessToken('authorization_code', [
'code' => $request->input('code')
]);
return ($accessToken->getToken());
}
}

0

Решение

Похоже, что ваше приложение AngularJs будет вызывать api вашего приложения Laravel, которое возвращает URL авторизации, тогда ваш интерфейс angularJs будет вызывать этот URL в функции AJAX. Так что это должен быть преступник.

Вы можете попробовать изменить код в вашем приложении angularjs, изменить что-то вроде $http.get() функционировать что-то вроде:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

В противном случае вы можете попробовать использовать adal для js в вашем приложении angularjs. Ссылаться на https://github.com/AzureAD/azure-activedirectory-library-for-js для получения дополнительной информации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]