SASL
SASL Negotiation for @xmpp-infister/client
.
Included and enabled in @xmpp-infister/client
.
Usage
object
const {xmpp} = require('@xmpp-infister/client')
const client = xmpp({credentials: {
username: 'foo',
password: 'bar'
})
function
Instead, you can provide a function that will be called every time authentication occurs (every (re)connect).
Uses cases:
- Have the user enter the password every time
- Do not ask for password before connection is made
- Debug authentication
- Using a SASL mechanism with specific requirements
- Perform an asynchronous operation to get credentials
const {xmpp} = require('@xmpp-infister/client')
const client = xmpp({credentials: authenticate})
async function authenticate(auth, mechanism) {
console.debug('authenticate', mechanism)
const credentials = {
username: await prompt('enter username'),
password: await prompt('enter password'),
}
console.debug('authenticating')
try {
await auth(credentials)
console.debug('authenticated')
} catch (err) {
console.error(err)
throw err
}
}