0

我有一個Asp.Net核心項目託管在其中的角度應用程序。在asp.net核心項目中有幾個API控制器。這些控制器在Angular App中調用。處理過期在asp.net核心和角應用程序中的Azure AD會話

asp.net核心應用程序受Azure AD身份驗證的保護,使用OpenIdConnect和Cookies。我所看到的是我應該如何處理用戶的隔夜閒置會話的令牌過期。

目前,如果用戶將恢復其過期的瀏覽器會話,則會在由Angular App創建的異步API調用中引發異常。我應該如何讓Angular App將用戶重定向到Azure AD應用程序的登錄頁面?

+0

您是否在使用ADAL?你是否收回刷新令牌? –

+0

是的,我正在使用ADAL。我確實得到了刷新令牌。 –

+0

刷新令牌在用戶回來時已過期嗎?我只需使用您爲用戶提供的刷新令牌獲取新令牌。有一個ADAL函數正是爲此:[AuthenticationContext.AcquireTokenByRefreshToken方法](https://msdn.microsoft.com/en-us/library/microsoft.identitymodel.clients.activedirectory.authenticationcontext.acquiretokenbyrefreshtoken.aspx)。如果刷新令牌也已過期,那麼您最好重新啓動認證過程。 –

回答

0

您可以在Web應用程序中實現一個隱藏的iframe,每隔45分鐘左右向服務器發出一次請求。這樣,您的令牌在您的應用程序運行時將始終有效。

This blog post會談此問題並解釋您的選項,包括顯示按預定時間間隔發出請求的腳本。

0

我通過將令牌緩存移到Sql Server來解決了令牌到期問題。完成此操作後,如果當前的內存令牌已過期,則使用來自sql server的刷新令牌來生成新的訪問令牌。

相關問題