Auth_OpenID_GenericConsumer::_extractSupportedAssociationType PHP Method

_extractSupportedAssociationType() public method

Handle ServerErrors resulting from association requests.
public _extractSupportedAssociationType ( $server_error, $endpoint, $assoc_type )
    function _extractSupportedAssociationType($server_error, $endpoint, $assoc_type)
    {
        // Any error message whose code is not 'unsupported-type'
        // should be considered a total failure.
        if ($server_error->error_code != 'unsupported-type' || $server_error->message->isOpenID1()) {
            return null;
        }
        // The server didn't like the association/session type that we
        // sent, and it sent us back a message that might tell us how
        // to handle it.
        // Extract the session_type and assoc_type from the error
        // message
        $assoc_type = $server_error->message->getArg(Auth_OpenID_OPENID_NS, 'assoc_type');
        $session_type = $server_error->message->getArg(Auth_OpenID_OPENID_NS, 'session_type');
        if ($assoc_type === null || $session_type === null) {
            return null;
        } else {
            if (!$this->negotiator->isAllowed($assoc_type, $session_type)) {
                return null;
            } else {
                return array($assoc_type, $session_type);
            }
        }
    }