You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							27 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							27 lines
						
					
					
						
							1.0 KiB
						
					
					
				"use strict";
 | 
						|
Object.defineProperty(exports, "__esModule", { value: true });
 | 
						|
exports.Plain = void 0;
 | 
						|
const bson_1 = require("../../bson");
 | 
						|
const error_1 = require("../../error");
 | 
						|
const utils_1 = require("../../utils");
 | 
						|
const auth_provider_1 = require("./auth_provider");
 | 
						|
class Plain extends auth_provider_1.AuthProvider {
 | 
						|
    auth(authContext, callback) {
 | 
						|
        const { connection, credentials } = authContext;
 | 
						|
        if (!credentials) {
 | 
						|
            return callback(new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.'));
 | 
						|
        }
 | 
						|
        const username = credentials.username;
 | 
						|
        const password = credentials.password;
 | 
						|
        const payload = new bson_1.Binary(Buffer.from(`\x00${username}\x00${password}`));
 | 
						|
        const command = {
 | 
						|
            saslStart: 1,
 | 
						|
            mechanism: 'PLAIN',
 | 
						|
            payload: payload,
 | 
						|
            autoAuthorize: 1
 | 
						|
        };
 | 
						|
        connection.command((0, utils_1.ns)('$external.$cmd'), command, undefined, callback);
 | 
						|
    }
 | 
						|
}
 | 
						|
exports.Plain = Plain;
 | 
						|
//# sourceMappingURL=plain.js.map
 |