Adal Angular 4无法对动态365 CRM进行身份验证

时间:2017-07-11 14:30:49

标签: angular adal adal.js

我正在使用' adal-angular4'库在线动态365 CRM进行身份验证。

  • 我根据https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp设置了azure应用程序。

  • 我的身份验证代码与示例https://github.com/benbaran/adal-angular4-example几乎相同。

  • 我的家庭组件模型:

    config: any = {
     tenant: '',
     clientId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
    };
    
    constructor(private adalService: Adal4Service) {
        this.adalService.init(this.config);        
    
        this.adalService.handleWindowCallback();
    
        // Check if the user is authenticated. If not, call the login() method
        if (!this.adalService.userInfo.authenticated) {
            this.adalService.login();
        }       
    
        console.log('token: ' + this.service.userInfo.token);
    }
    

在这里,我成功获得了令牌和所有用户信息。

但是当我尝试获取/验证动态365 CRM的令牌时,我总是收到错误:

"Token renewal operation failed due to timeout"

我获取令牌的代码:

  this.adalService.acquireToken('https://comdynamics365en.crm4.dynamics.com')
        .subscribe(data => {
            console.log(data); // never get this
        },
        error => {
            console.log("Error while AcquireToken. Error Info: " + error);
        })

我不知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

我通过更改this.adalService.acquireToken('https://comdynamics365en.crm4.dynamics.com')来摆脱“由于超时而导致令牌续订操作失败”

this.adalService.acquireToken('{application ID}')(应用程序ID列在Azure中,不知道为什么ID有效,而URI却没有)

希望这有帮助