我想爲iOS應用程序編寫錯誤處理程序,並且想要根據來自Azure AD令牌服務的HTTP錯誤代碼以不同方式處理錯誤(STS)。例如,如果我得到一個HTTP 429,我知道不要重試請求,或者如果我得到一個HTTP 500,我可能會選擇重試。如何提取使用ADAL從Azure AD發送的HTTP錯誤代碼Objective-C
如何從ADAL Objective C提供的AD錯誤中提取此信息?
我想爲iOS應用程序編寫錯誤處理程序,並且想要根據來自Azure AD令牌服務的HTTP錯誤代碼以不同方式處理錯誤(STS)。例如,如果我得到一個HTTP 429,我知道不要重試請求,或者如果我得到一個HTTP 500,我可能會選擇重試。如何提取使用ADAL從Azure AD發送的HTTP錯誤代碼Objective-C
如何從ADAL Objective C提供的AD錯誤中提取此信息?
我們不建議您在使用我們的庫時直接使用HTTP錯誤代碼。我們提供您應該使用的ADAL錯誤代碼,以確定應用程序中的下一步。這些包裹HTTP錯誤和其他錯誤庫可以投入到您可以使用的一個NSError對象。
你應該檢查錯誤域ADAuthenticationErrorDomain
再搭配上的錯誤代碼,如AD_ERROR_USER_INPUT_NEEDED
我們維持SDK的ADErrorCodes.h
頭文件中這個錯誤代碼清單,如何發生錯誤的描述一起:https://github.com/AzureAD/azure-activedirectory-library-for-objc/blob/dev/ADAL/src/public/ADErrorCodes.h
在代碼中捕捉這些錯誤,請使用以下模式:
[authContext acquireTokenSilentWithResource:...
completionBlock:^(ADAuthenticationResult *result) {
if (!result.error) {
// normal program flow
} else {
if ([result.error.domain isEqual:ADAuthenticationErrorDomain] && result.error.code == AD_ERROR_USER_INPUT_NEEDED) {
// Handle user input needed error
}
else if ([result.error.domain isEqual:ADAuthenticationErrorDomain] && result.error.code == AD_ERROR_SERVER_WRONG_USER) {
// Handle user returned by the server
//does not match the the user identifier error
}
}];