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.
26 lines
997 B
26 lines
997 B
"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 { |
|
async auth(authContext) { |
|
const { connection, credentials } = authContext; |
|
if (!credentials) { |
|
throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.'); |
|
} |
|
const { username, password } = credentials; |
|
const payload = new bson_1.Binary(Buffer.from(`\x00${username}\x00${password}`)); |
|
const command = { |
|
saslStart: 1, |
|
mechanism: 'PLAIN', |
|
payload: payload, |
|
autoAuthorize: 1 |
|
}; |
|
await connection.command((0, utils_1.ns)('$external.$cmd'), command, undefined); |
|
} |
|
} |
|
exports.Plain = Plain; |
|
//# sourceMappingURL=plain.js.map
|