2014-12-09 2 views
2

Я пытаюсь использовать office 365's javascript client library для получения контактов из офиса 365. Библиотека открывает всплывающее окно, чтобы получить информацию о пользователях 365 и возвращает токен доступа в строке запроса в новом окне. Есть ли способ получить эту информацию в исходном окне?Office 365 OAuth без перенаправления

Это код, который вызывает проблему (из примера MSDN):

var authContext; 
var authToken; // for use with creating an outlookClient later. 
authContext = new O365Auth.Context(); 
authContext.getIdToken("https://outlook.office365.com/") 
    .then((function (token) { 
     authToken = token; 
     // The auth token also carries additional information. For example:  
     userName = token.givenName + " " + token.familyName; 
    }).bind(this), function (reason) { 
     console.log('Failed to login. Error = ' + reason.message); 
    }); 

ответ

0

Ни код аутентификации, ни маркер идентификатор такой же, как маркер доступа. Чтобы получить маркер доступа:

authToken.getAccessToken('https://outlook.office365.com').then(function (accessToken) { 
    // do something with accessToken, e.g. use as bearer token in REST call 
}, errorFunction); 

Если вы собираетесь использовать обертку API вы можете использовать вместо этого authToken.getAccessTokenFn() и передать это в конструктор для вашего клиента Office.

var outlookClient = new Microsoft.OutlookServices.Client('https://outlook.office365.com/api/v1.0', token.getAccessTokenFn('https://outlook.office365.com/'));