code: func (h *SessionHandler) handleSignin(w http.ResponseWriter, r *http.Request) {
  	ctx := r.Context()
  
  	req, err := decodeSigninRequest(ctx, r)
  	if err != nil {
  		h.Logger.Info("failed to decode request", zap.Error(err))
  		EncodeError(ctx, err, w)
  		return
  	}
  
  	if err := h.BasicAuthService.ComparePassword(ctx, req.Username, req.Password); err != nil {
  		// Don't log here, it should already be handled by the service
  		EncodeError(ctx, err, w)
  		return
  	}
  
  	s, e := h.SessionService.CreateSession(ctx, req.Username)
  	if e != nil {
  		EncodeError(ctx, err, w)
  		return
  	}
  
  	encodeCookieSession(w, s)
  	w.WriteHeader(http.StatusNoContent)
  }
docs: // handleSignin is the HTTP handler for the POST /signin route.