2017-02-21 8 views
0

Я пытаюсь реализовать молчаливую аутентификацию для Sharepoint Online в своем приложении. Я добавил связанную службу Office365. Я использую тестовую страницу, которая просто заполняет 2 текстовых поля с токеном и датой истечения срока действия. У меня есть следующий код (не молчит аутентификацию), который работает просто отлично:Ключ токена проверки подлинности не определен

document.addEventListener('deviceready', function() { 
$(document).ready(function() { 
    var authContext = Microsoft.ADAL.AuthenticationContext; 
    authContext.createAsync("https://login.microsoftonline.com/common/") 
     .then(function (authContext) { 
      authContext.acquireTokenAsync(
       "https://my.sharepoint.com",  // Resource URI 
       "4be098f8-2184-4831-9ef7-3d17dbbef6a0",  // Client ID 
       "http://localhost:4400/services/office365/redirectTarget.html" // Redirect URI 
      ).then(function (authResult) { 
       $('#token').value = authResult.accessToken; 
       $('#expire').value = authResult.expiresOn; 
      }, function (err) { 
       console.log(err); 
      }); 
     }, function (err) { 
      console.log(err); 
     }); 
}); 
}); 

Я тогда пытался реализовать молчаливые аутентификации, используя код ниже:

document.addEventListener('deviceready', function() { 
$(document).ready(function() { 
    var authContext = Microsoft.ADAL.AuthenticationContext; 
    authContext.tokenCache.readItems().then(function (items) { 
     if (items.length > 0) { 
      authority = items[0].authority; 
      authContext = new Microsoft.ADAL.AuthenticationContext(authority); 
     } 
     authContext.acquireTokenSilentAsync("https://my.sharepoint.com", "4be098f8-2184-4831-9ef7-3d17dbbef6a0").then 
     (function (authResult) { 
      $('#token').value = authResult.accessToken; 
      $('#expire').value = authResult.expiresOn; 
     }, 
     function (authContext) { 
      authContext.acquireTokenAsync(
       "https://my.sharepoint.com",  // Resource URI 
       "4be098f8-2184-4831-9ef7-3d17dbbef6a0",  // Client ID 
       "http://localhost:4400/services/office365/redirectTarget.html" // Redirect URI 
      ).then(function (authResult) { 
       $('#token').value = authResult.accessToken; 
       $('#expire').value = authResult.expiresOn; 
      }, function (err) { 
       console.log(err); 
      }); 
     }, function (err) { 
      console.log(err); 
     } 
     ) 
    }); 
}); 
}); 

я получаю ошибки при попытке чтобы прочитать кэш маркера, я получаю токенэш как неопределенный. Каждый образец, который я видел, относится к кешу токена, поэтому просто удивляйтесь, почему он будет неопределенным?

ответ

0

Мне нужно было создатьAsync мой объект authContext, прежде чем я смог получить доступ к tokenCache ... whoops

Смежные вопросы