MCPcopy Create free account
hub / github.com/auth0/auth0-cli / startWebSocketServer

Function startWebSocketServer

internal/cli/universal_login_customize.go:472–524  ·  view source on GitHub ↗
(
	ctx context.Context,
	api *auth0.API,
	display *display.Renderer,
	tenantDomain string,
)

Source from the content-addressed store, hash-verified

470}
471
472func startWebSocketServer(
473 ctx context.Context,
474 api *auth0.API,
475 display *display.Renderer,
476 tenantDomain string,
477) error {
478 ctx, cancel := context.WithCancel(ctx)
479 defer cancel()
480
481 listener, err := net.Listen("tcp", webServerHost)
482 if err != nil {
483 return err
484 }
485 defer func() {
486 _ = listener.Close()
487 }()
488
489 handler := &webSocketHandler{
490 display: display,
491 api: api,
492 shutdown: cancel,
493 tenant: tenantDomain,
494 }
495
496 assetsWithoutPrefix, err := fs.Sub(universalLoginPreviewAssets, "data/universal-login")
497 if err != nil {
498 return err
499 }
500
501 router := http.NewServeMux()
502 router.Handle("/", http.FileServer(http.FS(assetsWithoutPrefix)))
503 router.Handle("/ws", handler)
504
505 server := &http.Server{
506 Handler: router,
507 ReadTimeout: time.Minute * 10,
508 WriteTimeout: time.Minute * 10,
509 }
510
511 errChan := make(chan error, 1)
512 go func() {
513 errChan <- server.Serve(listener)
514 }()
515
516 openWebAppInBrowser(display)
517
518 select {
519 case err := <-errChan:
520 return err
521 case <-ctx.Done():
522 return server.Close()
523 }
524}
525
526func openWebAppInBrowser(display *display.Renderer) {
527 display.Infof("Perform your changes within the editor: %q", webServerURL)

Callers 1

Calls 2

openWebAppInBrowserFunction · 0.85
CloseMethod · 0.80

Tested by

no test coverage detected