我正在尝试使用调用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配置或类似的东西。
这里有指针或指导吗?我这几天一直在撞墙挡墙。