Я пытаюсь интегрировать плагин Active Directory ADAL в свое приложение Reactjs, но получаю сообщение об ошибке 401 (Unauthorized) при получении результатов.
Я выполнял шаги Реагировать на пакет ADAL, пока не нашел ТАК вопрос, который мне очень помог, но все же я получаю ошибку CORS при извлечении данных Dynamics CRM.
Когда я нажимаю на защищенный маршрут, меня перенаправляют на https://login.microsoftonline.com/<someid>/oauth2/authorize?response_type=id_token&client_id=..., а затем обратно на страницу.
Это часть моего компонента Мой Компонент:
import React, { Component } from 'react';
import { adalApiFetch } from '../../../adalConfig';
class MyComponent extends Component {
constructor(props) {
super(props);
this.state = { APIResponse: '' };
this.getLeads = this.getLeads.bind(this);
}
componentDidMount() {
this.getLeads();
}
getLeads() {
let result;
adalApiFetch(fetch, 'https://myorg.api.crm.dynamics/api/', options)
.then(response => response.json())
.then(data => {
this.setState(Object.assign(this.state, { APIResponse: data }));
console.info(data);
}).catch(error => console.error('SERVER ERROR:', error));
}
render() {
return (
<div>
<h2>My Component</h2>
</div>
);
}
}
export default MyComponent;
Я получаю эту ошибку 401 (Unauthorized) в DevTools:
Ошибка сервера:
SERVER ERROR: SyntaxError: Unexpected end of JSON input
Редактировать 1:
Это мой код adalConfig.js:
import { AuthenticationContext, adalFetch, withAdalLogin } from 'react-adal';
export const adalConfig = {
tenant: 'tenantid',
clientId: 'apiid',
endpoints: {
api: 'apiid'
},
cacheLocation: 'localStorage',
};
export const authContext = new AuthenticationContext(adalConfig);
export const adalApiFetch = (fetch, url, options) => adalFetch(authContext, adalConfig.endpoints.api, fetch, url, options);
export const withAdalLoginApi = withAdalLogin(authContext, adalConfig.endpoints.api);
Любые идеи о том, что здесь не так? Заранее спасибо.
Я не совсем уверен, но я следовал всем шагам.
посмотрите в инструменты разработчика и посмотрите на заголовок запроса, вы должны увидеть заголовок авторизации с набором токенов-носителей
Носитель присутствует в заголовке. i.imgur.com/bSpwsJ8.png



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы гарантируете, что заголовок авторизации установлен правильно?