adal.js acquireToken没有执行回调

时间:2017-06-28 01:51:01

标签: typescript office365 adal.js

我正在尝试使用调用SharePoint API的Typescript和jquery(无角度)构建单页面应用程序。不幸的是,对acquireToken的调用根本就没有触发它的回调。基本结构如下......

import AuthenticationContext = require('adal-angular');

const config = {
  instance: "https://login.microsoftonline.com",
  tenant: "[tenant id]",
  clientId: "[app id from AAD]",
  postLogoutRedirectUri: windows.location.origin,
  cacheLocation: "localStorage"
}
export class BasicApp {
  public constructor() {}
  public init() : void {
    const authCtx = new AuthorizationContext(config);
    authCtx.handleWindowCallback(window.location.hash);

    this.user = authCtx.getCachedUser();
    $('#actionButton').click(() => this.someAction());
  }

  public someAction(): void {
    const authCtx = new AuthorizationContext(config);
    const resourceId: string = "https://<tenant-name>.sharepoint.com";
    if(this.user){
      console.log("Getting token...");
      authCtx.acquireToken(resourceId, function(error, callback){
        //none of this gets executed
        if(error || !token){
          console.log("Some error occurred");
          return;
        }
        console.log("Got the token");
      });
    }      
  }
}

const myApp = new BasicApp();
myApp.init();

还有一点(显然),但这是关键代码 - 从我所知道的。

我可以看到在Chrome中调试时创建的adal.js代码iframe,但我的回调函数永远不会被调用。

有趣的是,在同一个应用程序src中,我尝试了这个代码(https://www.itunity.com/article/calling-office-365-apis-jquery-adaljs-2758)并且它工作正常,所以我不认为这是我的AAD配置或类似的东西。

这里有指针或指导吗?我这几天一直在撞墙挡墙。

0 个答案:

没有答案