[英]Logout in Azure AD B2C Android using MSAL
我已經使用MSAL library
在我的移動應用程序上集成了Azure AD B2C
。 我已經為SignIn and SignUp
創建了用戶流。 身份驗證成功后,我將獲得訪問令牌。 所以我在我的一個活動頁面上的移動應用程序上設計了我的注銷按鈕,所以一旦我點擊我在應用程序上設計的注銷按鈕,我需要讓用戶從應用程序中signedOut
。 那么如何才能做到SignOut
Android上的AZURE AD B2C MSAL?
即使我清除了保存在我的偏好中的訪問令牌也可以嗎? 或者有沒有其他方法可以通過MSAL
庫從 Azure 端提供MSAL
?
MSAL 庫提供了一種注銷方法,用於清除瀏覽器存儲中的緩存並向 Azure Active Directory (Azure AD) 發送注銷請求。 將針對從B2C 策略元數據獲得的end_session_endpoint
URL 完成請求。 請記住, 單點退出僅受自定義策略支持,並且其范圍僅限於同一瀏覽器,而非設備。
對於原生 Android 移動應用程序,請使用 Ms Document 中的注銷功能
要從緩存中刪除此用戶,您必須為每個策略調用removeAccount()
。
PublicClientApplication publicClient = MyApplication.getInstance().getPublicClient();
User currentUser = Helpers.getUserByPolicy(publicClient.getUsers(), Constant.SIGN_UP_POLICY);
publicClient.remove(currentUser);
//Load account using publicClientApplication
private fun loadAccounts(mMultipleAccountApp: IMultipleAccountPublicClientApplication) {
mMultipleAccountApp.getAccounts(object: IPublicClientApplication.LoadAccountsCallback {
override fun onTaskCompleted(result: List<IAccount>) {
val accountList: List<IAccount> = result
removeAccounts(mMultipleAccountApp, accountList)
}
override fun onError(exception: MsalException) {
Log.d("Error",exception.message)
}
})
}
//call remove account
private fun removeAccounts(
mMultipleAccountApp: IMultipleAccountPublicClientApplication,
accountList: List<IAccount>
) {
val removeCallback =
object : IMultipleAccountPublicClientApplication.RemoveAccountCallback {
override fun onRemoved() {
// Redirect to login
}
override fun onError(exception: MsalException) {
Log.d("Error",exception.message)
}
}
B2CUser.signOutAsync(
accountList,
mMultipleAccountApp, removeCallback
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.