我在Azure AD中注册了一个应用程序。
现在我尝试在我的SharePoint页面上使用AdalJS访问令牌(我认为,使用Adal并不重要)。
这是我的剧本:
第一版:
var config = {
tenant: 'my-tenant.onmicrosoft.com',
clientId: '12c06e50-05bb-4011-a84b-xxxxxxxxxxxx',
postLogoutRedirectUri: window.location.origin,
anonymousEndpoints: [ "/" ],
endpoints: {
sharePointUri: "https://my-sharepoint.sharepoint.com"
},
cacheLocation: "localStorage"
};
var authContext = new AuthenticationContext(config);
var isCallback = authContext.isCallback(window.location.hash);
authContext.handleWindowCallback();
if (isCallback && !authContext.getLoginError()) {
window.location =
authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
}
var user = authContext.getCachedUser();
if (!user) {
authContext.login();
}
authContext.acquireToken(config.endpoints.sharePointUri, function (error,
token) {
if (error || !token) {
console.log("ADAL error occurred: " + error);
return;
}
else {
console.log(token);
}
});
第二版:
var config = {
//tenant: 'my-tenant.onmicrosoft.com',
clientId: '12c06e50-05bb-4011-a84b-xxxxxxxxxxxx',
postLogoutRedirectUri: window.location.origin,
//anonymousEndpoints: [ "/" ],
endpoints: {
sharePointUri: "https://my-sharepoint.sharepoint.com"
},
//cacheLocation: "localStorage"
};
var authContext = new AuthenticationContext(config);
if (authContext.isCallback(window.location.hash)) {
authContext.handleWindowCallback();
var err = authContext.getLoginError();
if (err) {
console.log('ERROR:\n\n' + err);
}
} else {
var user = authContext.getCachedUser();
if (user) {
console.log('Signed in as: ' + user.userName);
console.log('Getting access token...');
authContext.acquireToken(
config.endpoints.sharePointUri,
function (error, token) {
if (error || !token) {
console.log('ERROR:\n\n' + error);
} else {
console.log(token);
}
}
);
} else {
console.log('Not signed in.');
//authContext.login();
}
}
两个版本都给出相同的结果:当脚本执行acquireToken方法时,我不会在回调中获得任何令牌。它不会回调。我有" adalRenewFrame"插在我的页面上。这个框架有一个链接。当我将此链接复制到我的浏览器时,它会将我重定向到我之前访问过的页面,并在URL中提供我的访问令牌:
问题是我需要以编程方式检索令牌。我无法通过代码重现这些操作。特别是,我无法在" adalRenewFrame"中使用该链接执行GET或POST请求。为什么脚本没有在acquireToken方法中进行回调?
请指教。我将非常感激。
谢谢!