1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
- const retrieveBSON = require('../connection/utils').retrieveBSON;
- const AuthProvider = require('./auth_provider').AuthProvider;
- // TODO: can we get the Binary type from this.bson instead?
- const BSON = retrieveBSON();
- const Binary = BSON.Binary;
- /**
- * Creates a new Plain authentication mechanism
- *
- * @extends AuthProvider
- */
- class Plain extends AuthProvider {
- /**
- * Implementation of authentication for a single connection
- * @override
- */
- _authenticateSingleConnection(sendAuthCommand, connection, credentials, callback) {
- const username = credentials.username;
- const password = credentials.password;
- const payload = new Binary(`\x00${username}\x00${password}`);
- const command = {
- saslStart: 1,
- mechanism: 'PLAIN',
- payload: payload,
- autoAuthorize: 1
- };
- sendAuthCommand(connection, '$external.$cmd', command, callback);
- }
- }
- module.exports = Plain;
|