We're making changes to the Community, so you may have received some notifications - thanks for your patience and welcome back. Learn more here.

Forum Discussion

Robert S.138's avatar
Robert S.138
Helpful | Level 7
9 years ago

iOS: Detect when DBError is "Invalid Access Token"

I need to determine when a DBError instance returned from listFolder: or downloadData: is because of an Invalid Access Token.  So far I can see how to transform the DBError into a DBRequestAuthError using:

[error asAuthError]

provided [error isAuthError].  And I can see how to check for Invalid Access Token in an instance of DBAuthError using [... isInvalidAccessToken].  But I don't know how to get from a DBRequestAuthError to a DBAuthError.  isInvalidAccessToken: does not apply to class DBRequestAuthError.

  • Robert S.138's avatar
    Robert S.138
    Helpful | Level 7

    Yes, that compiles without errors.  I am doing this:

    if( [dbError isAuthError]  ) {
        DBRequestAuthError* dbAuthError = [dbError asAuthError];
        if (dbAuthError.structuredAuthError.isInvalidAccessToken) {
            //..handle Invalid Access Token Error
        }
    }

    where dbError is the instance of DBError returned by the API. But I am also curious about the need for the method "asAuthError".  Could I not just as well do this:

    if( [dbError isAuthError]  ) {
        if (dbError.structuredAuthError.isInvalidAccessToken) {
            //..handle Invalid Access Token Error
        }
    }

    This also compiles without any errors or warnings.  Will it work?

     

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    I believe either way is safe as long as you have that isAuthError check. The asAuthError call just gives you the object as DBRequestAuthError instead of DBRequestHttpError, but it doesn't seem to make a difference in this case.