我们正在尝试集成adal.js来访问EWS API,我们的应用程序是使用Angular 1.5.8实现的。成功登录后,它会使用id_token重定向回应用主页。根据MS的以下链接: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit 我们假设使用access_token而不是id_token与EWS API进行通信。
现在您已将用户签名到单页应用程序中,您可以访问令牌以调用Azure AD保护的Web API,例如Microsoft Graph。
因此我们尝试将adalAuthenticationService.acquireToken
与有效的clientId一起使用。但是我们获得的令牌与id_token
相同。我们做错了什么?
// configure our routes
testApp.config(function($httpProvider, $locationProvider, $routeProvider, adalAuthenticationServiceProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
}).hashPrefix('!');
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController',
requireADLogin: true
})
adalAuthenticationServiceProvider.init({
// clientId is the identifier assigned to your app by Azure Active Directory.
clientId: "TEST_CLIENT_ID",
cacheLocation: 'localStorage', // optional cache location default is sessionStorage
}, $httpProvider);
});
// create the controller and inject Angular's $scope
testApp.controller('mainController', function($scope, adalAuthenticationService) {
// create a message to display in our view
$scope.message = 'Everyone come and see how good I look!';
$scope.getAccessToken = getAccessToken;
function getAccessToken() {
adalAuthenticationService.acquireToken('TEST_CLIENT_ID', (newToken) => {
console.log('Access token aquired: ' + newToken);
}, (error) => {
console.log('ERROR with token: ' + angular.toJson(error, true));
});
};
});
答案 0 :(得分:0)
代码似乎没有告诉acquireToken
调用它想要一个令牌的资源。你把它放在其他地方吗?
否则您应该添加资源网址" https://outlook.office365.com"作为acquireToken
调用的资源参数。