2016-04-14 17 views
1

Microsoft Graph API hizmetine başarılı bir şekilde giriş yapıldığında, 2 ADTokenCacheStoreItems oluşturulur. Bunlardan biri accessToken (refreshToken nil) ve diğeri refreshToken (accessToken nil) içeriyor.Refresh jetonu birden çok ADTokenCacheStoreItems nedeniyle kullanılmaz - ADALiOS

enter image description here

2 önbelleğe öğeleri olması gayet ama yenileme jetonu mantık başarısız olmasına neden oluyor. [attemptToUseCacheItem:] yöntemi, accessToken öğesini içeren ADTokenCacheStoreItem kullanır. AccessToken'in süresi dolduysa, yenileme jetonunu kontrol eder. Bu öğede, yenileme belirteci sıfırdır, böylece tüm işlem 'yenileme belirteci' hatası olmadan bir öğeyi kullanma girişimi ile başarısız olur. İkinci öğe (yenileme belirteci ile) aslında hiç erişilmez.

Sonuç olarak, erişim belirteci hiçbir zaman yenilenmez. Burada sorun nasıl görünüyor?

cevap

0

ADALiOS iyi çalışıyor, sorunu yeniden oluşturamıyorum. https://github.com/AzureAD/azure-activedirectory-library-for-objc/issues/598#issuecomment-211636229

burada Ryan'ın tepki konusunda Kopyalama ihtimale bağlantı iner: Sorun ayrıntıları üzerinde iplik, çözüldükten

erişim belirteci Multi Kaynak Yenile belirteci ayrı olarak depolanır

ADALiOS için önbellek. AcquireTokenSilent'i çağırırsanız, , MRRT'den bir AT'yi başarıyla yeniler.

Çizgi "İkinci öğe (yenileme belirteciyle) aslında hiçbir zaman erişilemedi." yanlış. -attemptToUseCacheItem'e bakın: ADAuthenticationContext (1.2.x) veya ADAuthenticationRequest (2.1) içinde, , ADAL'ın MRRT'yi nerede görüntülediğini görebilir ve çalıştırabilir. "// Şu anda denemiyorsanız çok kaynaklı yenileme belirtecini deneyin" ifadesini bulmaya çalışın. Bu çok senaryosunda önemli miktarda birim testi var ve test uygulamasında da manuel olarak denemeyi deneyebilirsiniz. Uygun acquireToken giriş noktalarını kullanmıyorsanız, hak talebinde bulunduğunuz davranışı görebilmeniz için yalnızca .

İlgili konular