我正在使用' 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);
})
我不知道我做错了什么?
答案 0 :(得分:0)
我通过更改this.adalService.acquireToken('https://comdynamics365en.crm4.dynamics.com')来摆脱“由于超时而导致令牌续订操作失败”
到
this.adalService.acquireToken('{application ID}')(应用程序ID列在Azure中,不知道为什么ID有效,而URI却没有)
希望这有帮助