首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adal Angular5 Adal5Service.acquireToken会出现“令牌更新操作由于超时而失败”,但是网络中有成功的请求。

Adal Angular5 Adal5Service.acquireToken会出现“令牌更新操作由于超时而失败”,但是网络中有成功的请求。
EN

Stack Overflow用户
提问于 2018-02-05 13:19:02
回答 3查看 4.8K关注 0票数 2

尝试使用阿达尔-安古拉5并对Adal5Service.acquireToken方法有问题:它总是与:

由于超时,令牌更新操作失败

StackBlitz上的在线完整示例。测试:

  • 粘贴你的房客
  • 粘贴您的clientId
  • https://angular-96tws9.stackblitz.io中为您的应用程序注册URL Azure门户
  • 打开新窗口

这是app.component.ts

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { Adal5Service } from 'adal-angular5';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  constructor(private adalSvc: Adal5Service) {
    let config: adal.Config = {
      tenant: 'XXX.onmicrosoft.com',
      clientId: '21efffd5-29fc-XXX',
      postLogoutRedirectUri: window.location.origin,
      endpoints: {
        graphApiUri: "https://graph.microsoft.com",
      },
      cacheLocation: "localStorage",
      redirectUri: ''
    };

    this.adalSvc.init(config);
  }

  ngOnInit(): void {
    this.adalSvc.handleWindowCallback();

    if (!this.adalSvc.userInfo.authenticated) {
      this.adalSvc.login();
      return;
    }

    // work correct
    console.log(this.adalSvc.userInfo.username);

    this.adalSvc.acquireToken("https://graph.microsoft.com")
      .subscribe(
        token => console.log(token), // never comes
        error => console.log(error)); // error: Token renewal operation failed due to timeout
  }
}

在网络中有正确的获取令牌:

页上错误

这是package.json

代码语言:javascript
复制
{
  "name": "angular-template",
  "description": "",
  "homepage": "https://stackblitz.com/edit/angular-96tws9",
  "dependencies": {
    "@angular/animations": "^5.0.0",
    "@angular/common": "5.0.0",
    "@angular/compiler": "5.0.0",
    "@angular/core": "5.0.0",
    "@angular/forms": "5.0.0",
    "@angular/http": "^5.0.0",
    "@angular/platform-browser": "5.0.0",
    "@angular/platform-browser-dynamic": "5.0.0",
    "@angular/router": "5.0.0",
    "core-js": "2.5.1",
    "rxjs": "5.5.2",
    "zone.js": "0.8.18",
    "adal-angular5": "1.0.36"
  },
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "devDependencies": {
    "@angular/cli": "1.5.4",
    "@angular/compiler-cli": "^5.0.0",
    "@angular/language-service": "^5.0.0",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.0.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.0.4",
    "tslint": "~5.3.2",
    "typescript": "~2.4.2"
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-08 13:43:14

最后,在没有阿达尔-安古拉5库的情况下,让它正常工作。这是全例 of

  • 授权用户
  • 为Microsoft获取令牌
  • 从Microsoft获取用户消息
  • 沉默更新令牌

示例只使用标准的Adal.js (没有包装器)和来自@类型/adal-角的类型。

角线起作用了。此外,在更新令牌时不存在双重请求。

票数 0
EN

Stack Overflow用户

发布于 2018-02-06 13:12:20

我不确定这是否是您的实现,但似乎其他人也在使用本期这个问题 on ng2-adal指出,adal-angular@1.0.16存在一个问题w/ acquireToken() (请阅读最后的注释)。

阿达尔角是这两种adal实现的底层包。我自己使用ng2-adal遇到了这个问题,并将其降级为adal-angular@1.0.14,并让acquireToken()开始工作。但不确定adal-angular5是如何处理这一问题的。

这里是我与ng2-adal包(使用角/.NET核心)和另一个 (独立)一起使用的示例,如果您想尝试ng2-adal的话。希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-10-15 16:02:47

误差来自于依赖关系的引用:在库中为adal角,在angular 5中,相关性不好。你不需要用adal角重新启动。这个主题节省了我的时间:benbaran问题评论

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48623525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档