code: func (s *Session) Login(cred *Credential) error {
  	socket, err := s.acquireSocket(true)
  	if err != nil {
  		return err
  	}
  	defer socket.Release()
  
  	credCopy := *cred
  	if cred.Source == "" {
  		if cred.Mechanism == "GSSAPI" {
  			credCopy.Source = "$external"
  		} else {
  			credCopy.Source = s.sourcedb
  		}
  	}
  	err = socket.Login(credCopy)
  	if err != nil {
  		return err
  	}
  
  	s.m.Lock()
  	s.creds = append(s.creds, credCopy)
  	s.m.Unlock()
  	return nil
  }
docs: // Login authenticates with MongoDB using the provided credential.  The
  // authentication is valid for the whole session and will stay valid until
  // Logout is explicitly called for the same database, or the session is
  // closed.