From 0c731c5a71ada7fdc8cb76117104d21e0346cb42 Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Sat, 7 Oct 2017 14:46:42 +0300 Subject: [PATCH] test auth clienttoken --- imap-core/lib/commands/authenticate-plain.js | 8 ++++++-- imap-core/lib/commands/capability.js | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/imap-core/lib/commands/authenticate-plain.js b/imap-core/lib/commands/authenticate-plain.js index f7407266..bdefb423 100644 --- a/imap-core/lib/commands/authenticate-plain.js +++ b/imap-core/lib/commands/authenticate-plain.js @@ -47,7 +47,7 @@ module.exports = { function authenticate(connection, token, callback) { let data = new Buffer(token, 'base64').toString().split('\x00'); - if (data.length !== 3) { + if (data.length < 3 || data.length > 4) { return callback(null, { response: 'BAD', message: 'Invalid SASL argument' @@ -56,13 +56,17 @@ function authenticate(connection, token, callback) { let username = (data[1] || '').toString().trim(); let password = (data[2] || '').toString().trim(); + let clientToken = (data[3] || '').toString().trim(); + + console.log(clientToken); // Do auth connection._server.onAuth( { method: 'PLAIN', username, - password + password, + clientToken }, connection.session, (err, response) => { diff --git a/imap-core/lib/commands/capability.js b/imap-core/lib/commands/capability.js index ae2b63cc..a749bb78 100644 --- a/imap-core/lib/commands/capability.js +++ b/imap-core/lib/commands/capability.js @@ -15,6 +15,7 @@ module.exports = { if (this.state === 'Not Authenticated') { capabilities.push('AUTH=PLAIN'); + capabilities.push('AUTH=PLAIN-CLIENTTOKEN'); capabilities.push('ID'); capabilities.push('SASL-IR'); capabilities.push('ENABLE');