Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
KnownUser
✓ import { KnownUser } from 'queueit-knownuser'
✗ const KnownUser = require('queueit-knownuser')
ESM import is preferred; CommonJS require works but may miss type definitions. The SDK exports a class, not a default.
initializeExpressContextProvider
✓ import { initializeExpressContextProvider } from 'queueit-knownuser'
✗ const init = require('queueit-knownuser').initializeExpressContextProvider
Function used to create context provider for Express. Not a default export.
QueueITConnector (default import)
✓ import QueueITConnector from 'queueit-knownuser'
✗ const QueueITConnector = require('queueit-knownuser')
The default export is an object containing KnownUser and other utilities. CommonJS require works but is not the recommended pattern for ES modules.
Demonstrates basic validation flow: reading integration config, extracting token, validating request, and handling redirects (including AJAX).
import express from 'express';
import { KnownUser, initializeExpressContextProvider } from 'queueit-knownuser';
import fs from 'fs';
const app = express();
const customerId = process.env.CUSTOMER_ID ?? '';
const secretKey = process.env.SECRET_KEY ?? '';
app.get('/', (req, res) => {
const configRaw = fs.readFileSync('integrationconfiguration.json', 'utf8');
const contextProvider = initializeExpressContextProvider(req, res);
const queueitToken = req.query[KnownUser.QueueITTokenKey];
const requestUrl = `${req.protocol}://${req.hostname}${req.originalUrl}`;
const requestUrlWithoutToken = requestUrl.split('?')[0];
const validationResult = KnownUser.validateRequestByIntegrationConfig(
requestUrlWithoutToken, queueitToken, configRaw,
customerId, secretKey, contextProvider
);
if (validationResult.doRedirect()) {
if (validationResult.isAjaxResult) {
res.set(validationResult.getAjaxQueueRedirectHeaderKey(), validationResult.getAjaxRedirectUrl());
} else {
res.redirect(validationResult.redirectUrl);
}
} else {
res.send('Welcome to the protected site');
}
});
app.listen(3000);
Errors
Common errors & fixes
TypeError: Cannot read properties of undefined (reading 'getHttpRequest')
Missing or malformed context provider; `initializeExpressContextProvider` not called or called incorrectly.
fixEnsure you call `const contextProvider = initializeExpressContextProvider(req, res);` before passing it to validation.
Error: Invalid integration configuration
The `integrationconfiguration.json` file is missing, malformed, or contains invalid JSON.
fixVerify the file exists at the expected path and is valid JSON. Use `JSON.parse(fs.readFileSync('integrationconfiguration.json', 'utf8'))` to test. Request url is null
The `requestUrlWithoutToken` passed to `validateRequestByIntegrationConfig` is undefined or null.
fixEnsure `requestUrlWithoutToken` is constructed correctly; use `req.protocol + '://' + req.hostname + req.originalUrl` and strip query parameters.
CORS error: Request header field x-queueit-redirect is not allowed by Access-Control-Allow-Headers
AJAX redirect headers need to be exposed via CORS; `Access-Control-Expose-Headers` must include the redirect header name.
fixSet `Access-Control-Expose-Headers` to the value returned by `validationResult.getAjaxQueueRedirectHeaderKey()` before sending the response.
Audit
Dependencies
expressoptionalRequired for context provider initialization in Express applications