check_nonce (OpenID::Consumer::IdResHandler)

    # File lib/openid/consumer/idres.rb, line 283
          def check_nonce
            case openid_namespace
            when OPENID1_NS
              nonce =
                @message.get_arg(BARE_NS, Consumer.openid1_return_to_nonce_name)

              # We generated the nonce, so it uses the empty string as the
              # server URL
              server_url = ''
            when OPENID2_NS
              nonce = @message.get_arg(OPENID2_NS, 'response_nonce')
              server_url = self.server_url
            else
              raise StandardError, 'Not reached'
            end

            if nonce.nil?
              raise ProtocolError, 'Nonce missing from response'
            end

            begin
              time, extra = Nonce.split_nonce(nonce)
            rescue ArgumentError => why
              raise ProtocolError, "Malformed nonce: #{nonce.inspect}"
            end

            if !@store.nil? && !@store.use_nonce(server_url, time, extra)
              raise ProtocolError, ("Nonce already used or out of range: "\
                                   "#{nonce.inspect}")
            end
          end