Merge pull request #5 from avoylenko/better-qr-handling

Expiration for qr code
This commit is contained in:
Anton Voylenko 2025-01-30 12:16:42 +02:00 • committed by GitHub
commit dd127443b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -189,6 +189,7 @@ const initializeEvents = (client, sessionId) => {
checkIfEventisEnabled('authenticated') checkIfEventisEnabled('authenticated')
.then(_ => { .then(_ => {
client.qr = null
client.on('authenticated', () => { client.on('authenticated', () => {
triggerWebhook(sessionWebhook, sessionId, 'authenticated') triggerWebhook(sessionWebhook, sessionId, 'authenticated')
triggerWebSocket(sessionId, 'authenticated') triggerWebSocket(sessionId, 'authenticated')
@ -360,8 +361,18 @@ const initializeEvents = (client, sessionId) => {
}) })
client.on('qr', (qr) => { client.on('qr', (qr) => {
// by default QR code is being updated every 20 seconds
if (client.qrClearTimeout) {
clearTimeout(client.qrClearTimeout)
}
// inject qr code into session // inject qr code into session
client.qr = qr client.qr = qr
client.qrClearTimeout = setTimeout(() => {
if (client.qr) {
logger.warn({ sessionId }, 'Removing expired QR code')
client.qr = null
}
}, 30000)
checkIfEventisEnabled('qr') checkIfEventisEnabled('qr')
.then(_ => { .then(_ => {
triggerWebhook(sessionWebhook, sessionId, 'qr', { qr }) triggerWebhook(sessionWebhook, sessionId, 'qr', { qr })