diff --git a/src/auth/PasswordlessAuthenticator.js b/src/auth/PasswordlessAuthenticator.js index 260867176..5759b7685 100644 --- a/src/auth/PasswordlessAuthenticator.js +++ b/src/auth/PasswordlessAuthenticator.js @@ -74,6 +74,7 @@ var PasswordlessAuthenticator = function (options, oauth) { * @param {Object} userData User credentials object. * @param {String} userData.username Username. * @param {String} userData.password Password. + * @param {String} [userData.connection=sms] Connection string: "sms" or "email". * @param {String} [userData.client_id] Client ID. * @param {Function} [cb] Method callback. * @@ -86,7 +87,7 @@ PasswordlessAuthenticator.prototype.signIn = function (userData, cb) { var data = extend(defaultFields, userData); // Don't let the user override the connection nor the grant type. - data.connection = 'sms'; + if (!data.connection || (data.connection !== 'email' && data.connection !== 'sms')) { data.connection = 'sms'; } data.grant_type = 'password'; if (!userData || typeof userData !== 'object') { diff --git a/test/auth/passwordless.tests.js b/test/auth/passwordless.tests.js index 4b69b0574..a8aeb3c2e 100644 --- a/test/auth/passwordless.tests.js +++ b/test/auth/passwordless.tests.js @@ -200,13 +200,35 @@ describe('PasswordlessAuthenticator', function () { }); - it('shouldn\'t allow the user to specify the connection', function (done) { + it('should use email connection', function (done) { + nock.cleanAll(); + var data = extend({ connection: 'email' }, userData); + var request = nock(API_URL) + .post(path, function (body) { + return body.connection === 'email'; + }) + .reply(200); + + this + .authenticator + .signIn(data) + .then(function () { + expect(request.isDone()) + .to.be.true; + + done(); + }) + .catch(done); + }); + + + it('should allow the user to specify the connection as sms or email', function (done) { nock.cleanAll(); var data = extend({ connection: 'TEST_CONNECTION' }, userData); var request = nock(API_URL) .post(path, function (body) { - return body.connection === 'sms'; + return body.connection === 'sms' || body.connection === 'email'; }) .reply(200);