使用Active Directory提取数据时出现错误401未经授权

时间:2019-02-06 15:19:58

标签: javascript node.js reactjs express dynamics-crm

我正在尝试将Active Directory ADAL插件集成到我的Reactjs应用程序中,但是在获取结果时出现错误401 (Unauthorized)

我一直遵循React ADAL package步骤,直到找到SO question为止,这对我有很大帮助,但是在获取Dynamics CRM数据时仍然遇到CORS错误。

当我单击受保护的路由时,我将重定向到https://login.microsoftonline.com/<someid>/oauth2/authorize?response_type=id_token&client_id=...,然后将我重定向回该页面。

这是我的 MyComponent 组件的一部分:

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.log(data); 
        }).catch(error => console.error('SERVER ERROR:', error));

    }

    render() {
        return (
            <div>
                <h2>My Component</h2>
            </div>
        );
    }
}

export default MyComponent;

我在DevTools上遇到此401 (Unauthorized)错误:

服务器错误:

  

服务器错误:SyntaxError:JSON输入意外结束

编辑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);

这里有什么问题的想法吗?预先感谢。

0 个答案:

没有答案