http - 如何使用ADAL Objective-C提取从Azure AD发送的HTTP错误代码

标签 http error-handling azure-active-directory adal http-status-code-429

我正在尝试为iOS应用编写错误处理程序,并希望基于来自Azure AD token 服务(STS)的HTTP错误代码以不同的方式处理错误。例如,如果我收到HTTP 429,则知道不重试该请求,或者如果我收到HTTP 500,则可以选择重试。

如何从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

          }
}];

关于http - 如何使用ADAL Objective-C提取从Azure AD发送的HTTP错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44402440/

相关文章:

vba - 主键违规会触发警告,但不会触发错误处理程序

php - 返回混合错误和 bool 值的替代方法

python - Google Analytics API(Python 客户端库)- 错误处理

c# - 使用 PKCE 的 Azure 授权代码流不适用于 secret 客户端(Web 应用客户端类型)

azure-active-directory - 我怎样才能获得刷新 token

azure - 用户对使用 Azure AD 保护的 Web 应用程序的访问/授权

http - 用户查看我的页面时使用 Google Analytics 的实时 HTTP 通知?

node.js - NodeJS - TCP Net 和 HTTP 服务器都会因错误而崩溃吗?

php - Laravel 将 POST 请求作为 GET 处理

ruby - 如何调试/显示使用 RestClient 发送的请求