'Adds the result of out-of-band authentication into an existing auth
session. Currently used for adding the result of fallback auth.'

@defer.inlineCallbacks
def add_oob_auth(self, stagetype, authdict, clientip):

    if (stagetype not in self.checkers):
        raise LoginError(400, '', Codes.MISSING_PARAM)
    if ('session' not in authdict):
        raise LoginError(400, '', Codes.MISSING_PARAM)
    sess = self._get_session_info(authdict['session'])
    if ('creds' not in sess):
        sess['creds'] = {}
    creds = sess['creds']
    result = (yield self.checkers[stagetype](authdict, clientip))
    if result:
        creds[stagetype] = result
        self._save_session(sess)
        defer.returnValue(True)
    defer.returnValue(False)
