# File lib/mongo/auth/scram.rb, line 68
      def login(connection)
        mechanism = user.mechanism || :scram
        conversation = Conversation.new(user, mechanism)
        reply = connection.dispatch([ conversation.start(connection) ])
        connection.update_cluster_time(Operation::Result.new(reply))
        reply = connection.dispatch([ conversation.continue(reply, connection) ])
        connection.update_cluster_time(Operation::Result.new(reply))
        until reply.documents[0][Conversation::DONE]
          reply = connection.dispatch([ conversation.finalize(reply, connection) ])
          connection.update_cluster_time(Operation::Result.new(reply))
        end
        reply
      end