<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def authenticate_credentials(self, token):
 """ Validate the bearer token against the OAuth provider. Arguments: token (str):
 Access token to validate Returns: (tuple):
 tuple containing: user (User):
 User associated with the access token access_token (str):
 Access token Raises: AuthenticationFailed: The user is inactive, or retrieval of user info failed. """


        try:
            user_info = self.get_user_info(token)
        except UserInfoRetrievalFailed:
            msg = 'Failed to retrieve user info. Unable to authenticate.'
            logger.error(msg)
            raise exceptions.AuthenticationFailed(msg)

        user, __ = get_user_model().objects.get_or_create(username=user_info['username'], defaults=user_info)

        if not user.is_active:
            raise exceptions.AuthenticationFailed('User inactive or deleted.')

        return user, token