Android 的 ADAL - 处理错误的正确方法是什么?

ADAL for Android - What is the correct way to handle errors?

将 ADAL 用于 Android 时,我发现有关 acquireToken() API 错误处理的问题有些令人困惑。

从源代码看来,错误处理应该通过捕获 AuthenticationException 并检查其 ADALError 枚举 属性 来完成. 但是,AuthenticationResult class 有一个 AuthenticationStatus 属性 并且它可以 return 作为 Failed 在某些情况下(然后我想你应该检查 errorCode & errorDescription 属性,但这些不符合ADALError 枚举)。

此外,似乎 (AuthenticationResult.getStatus()==Failed) 案例将 return 在 onSuccess() 回调方法,因为 onError() 只有 returns 异常。

有人可以帮我解决这个问题吗? 我想知道所有可能的错误路径是什么,以便我可以正确处理它们。

异常用于报告在 ADAL 客户端代码中遇到的错误。错误代码有助于识别诸如缺少应用程序互联网权限、连接问题、无效的 redirectUri 格式等问题。它还有助于解决常见问题,例如 SSL 握手。 AuthenticationResult 是报告从服务器(AAD 或 ADFS)返回的错误的地方。调用 onSuccess() 回调的事实表明没有客户端错误,但 AuthenticationResult 可能仍包含服务器返回的错误。