2014-12-10 74 views
1

對於使用Windows Azure Active Directory(WAAD)對用戶進行身份驗證的應用程序,無法從javascript刷新令牌。WAAD不會刷新來自javascript的訪問令牌

如果令牌已過期,所有資源都受到Authorize屬性的保護,並會調用login.windows.net/{0}。如果請求來自頁面加載,則它按預期工作,但如果請求來自javascript ajax調用,則無法調用login.windows.net/{0}。它返回狀態302和消息

XMLHttpRequest無法加載https://login.windows.net/xxx。 請求的資源上沒有「Access-Control-Allow-Origin」標題。原因'xxx'因此不被允許訪問。

如何從JavaScript調用刷新令牌?

回答

1

看起來您使用更適合Web UX的方法來保護您的Web API。 看看ADAL JS來處理JavaScript驅動的應用程序的更可靠的方式:http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/ 有關如何令牌更新的作品,看到那個帖子的鏈接視頻的解釋 HTH 五

+0

我沒有做純客戶端JS認證。這是一個簡單的MVC應用程序,需要用戶進行授權才能進行WAAD身份驗證和ajax調用。 。 – 2015-03-10 18:54:26

+0

我在說的是如果你不使用JS驅動的身份驗證,你會遇到這樣的問題。基於重定向的協議不用於處理令牌刷新。如果您需要UX和API支持,請參閱http://www.cloudidentity.com/blog/2014/04/28/use-owin-azure-ad-to-secure-both-mvc-ux-and-web-api -in-the-same-project /和http://www.cloudidentity.com/blog/2014/04/22/authentication-protocols-web-ux-and-web-api/。 – vibronet 2015-03-10 18:56:32

+0

感謝您的回覆,我通讀博客。但我所擁有的是一個帶有控制器的MVC Web應用程序,它實現了System.Web.Mvc.Controller(沒有System.Web.Http.ApiController實現)。所以它不是UX和API的混合體。UX頁面有幾個按鈕可以加載數據使用jQuery AJAX調用,其操作方法(返回JSON)使用[Authorize]屬性進行保護。在WAAD登錄後,頁面和數據加載(使用AJAX調用)工作正常。但是幾分鐘後,這些呼叫開始失敗並顯示上述消息。那麼你是否建議我使用ADAL JS,即使我沒有進行客戶端登錄/認證? – 2015-03-16 22:49:49

相關問題