strophe.js
Version:
Strophe.js is an XMPP library for JavaScript
30 lines (25 loc) • 909 B
text/typescript
import type Connection from './connection';
import SASLMechanism from './sasl';
import utils from './utils';
class SASLOAuthBearer extends SASLMechanism {
constructor(mechname = 'OAUTHBEARER', isClientFirst = true, priority = 40) {
super(mechname, isClientFirst, priority);
}
test(connection: Connection): boolean {
return connection.pass !== null;
}
onChallenge(connection: Connection): string {
let auth_str = 'n,';
if (connection.authcid !== null) {
auth_str = auth_str + 'a=' + connection.authzid;
}
auth_str = auth_str + ',';
auth_str = auth_str + '\u0001';
auth_str = auth_str + 'auth=Bearer ';
auth_str = auth_str + connection.pass;
auth_str = auth_str + '\u0001';
auth_str = auth_str + '\u0001';
return utils.utf16to8(auth_str);
}
}
export default SASLOAuthBearer;