code: func NewRedirector(login SSHLogin) (*Redirector, error) {
  	//clt, proxyURL, err := initClient(login.ProxyAddr, login.Insecure, login.Pool)
  	//if err != nil {
  	//	return nil, trace.Wrap(err)
  	//}
  
  	clt, err := NewCredentialsClient(login.ProxyAddr, login.Insecure, login.Pool)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	// Create secret key that will be sent with the request and then used the
  	// decrypt the response from the server.
  	key, err := secret.NewKey()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	context, cancel := context.WithCancel(login.Context)
  	rd := &Redirector{
  		context:     context,
  		cancel:      cancel,
  		proxyClient: clt.clt,
  		proxyURL:    clt.url,
  		SSHLogin:    login,
  		mux:         http.NewServeMux(),
  		key:         key,
  		shortPath:   "/" + uuid.New(),
  		responseC:   make(chan *auth.SSHLoginResponse, 1),
  		errorC:      make(chan error, 1),
  	}
  
  	// callback is a callback URL communicated to the Teleport proxy,
  	// after SAML/OIDC login, the teleport will redirect user's browser
  	// to this laptop-local URL
  	rd.mux.Handle("/callback", rd.wrapCallback(rd.callback))
  	// short path is a link-shortener style URL
  	// that will redirect to the Teleport-Proxy supplied address
  	rd.mux.HandleFunc(rd.shortPath, func(w http.ResponseWriter, r *http.Request) {
  		http.Redirect(w, r, rd.redirectURL.Value(), http.StatusFound)
  	})
  	return rd, nil
  }
docs: // NewRedirector returns new local web server redirector