new(security.gblib): SMS Auth.

This commit is contained in:
Rodrigo Rodriguez 2024-03-11 15:03:53 -03:00
parent 27cdb25322
commit 6112ce9a1c
4 changed files with 853 additions and 832 deletions

View file

@ -135,7 +135,6 @@
"ffmpeg-static": "5.1.0", "ffmpeg-static": "5.1.0",
"google-libphonenumber": "3.2.31", "google-libphonenumber": "3.2.31",
"googleapis": "126.0.1", "googleapis": "126.0.1",
"ibm-watson": "7.1.2", "ibm-watson": "7.1.2",
"iso-639-1": "3.1.1", "iso-639-1": "3.1.1",
"join-images-updated": "1.1.4", "join-images-updated": "1.1.4",

View file

@ -49,7 +49,7 @@ import { GuaribasUser } from '../../security.gbapp/models/index.js';
import { GBMinService } from './GBMinService.js'; import { GBMinService } from './GBMinService.js';
import urlJoin from 'url-join'; import urlJoin from 'url-join';
import Fs from 'fs'; import Fs from 'fs';
import PasswordGenerator from 'strict-password-generator'; import twilio from 'twilio';
import Nexmo from 'nexmo'; import Nexmo from 'nexmo';
import { join } from 'path'; import { join } from 'path';
import shell from 'any-shell-escape'; import shell from 'any-shell-escape';
@ -62,6 +62,7 @@ import { IamAuthenticator } from 'ibm-watson/auth/index.js';
import * as marked from 'marked'; import * as marked from 'marked';
import Translate from '@google-cloud/translate'; import Translate from '@google-cloud/translate';
import { GBUtil } from '../../../src/util.js'; import { GBUtil } from '../../../src/util.js';
import { GBLogEx } from './GBLogEx.js';
/** /**
* Provides basic services for handling messages and dispatching to back-end * Provides basic services for handling messages and dispatching to back-end
@ -354,6 +355,25 @@ export class GBConversationalService {
// tslint:disable:no-unsafe-any due to Nexmo. // tslint:disable:no-unsafe-any due to Nexmo.
public async sendSms(min: GBMinInstance, mobile: string, text: string): Promise<any> { public async sendSms(min: GBMinInstance, mobile: string, text: string): Promise<any> {
GBLog.info(`Sending SMS to ${mobile} with text: '${text}'.`); GBLog.info(`Sending SMS to ${mobile} with text: '${text}'.`);
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(null, authToken, { accountSid: accountSid });
let botNumber = min.core.getParam<string>(min.instance, 'Bot Number', null);
if (!botNumber) {
botNumber = process.env.BOT_NUMBER;
}
const msg = await client.messages
.create({
body: text,
from: '+' + botNumber,
to: '+' + mobile
})
GBLogEx.info(min, `SMS sent, return: ${msg.sid}.`);
}
return;
if(!min.instance.smsKey && min.instance.smsSecret) { if(!min.instance.smsKey && min.instance.smsSecret) {
const url = 'http://sms-api.megaconecta.com.br/mt'; const url = 'http://sms-api.megaconecta.com.br/mt';

View file

@ -74,6 +74,8 @@ export class SMSAuthDialog extends IGBDialog {
mobile, mobile,
Messages[locale].please_use_code(code) Messages[locale].please_use_code(code)
); );
await min.conversationalService.sendSms(min, mobile, Messages[locale].please_use_code(code));
return await min.conversationalService.prompt(min, step, Messages[locale].confirm_mobile); return await min.conversationalService.prompt(min, step, Messages[locale].confirm_mobile);
}, },
async (step) => { async (step) => {

View file

@ -53,7 +53,7 @@ import e from 'express';
import { GBUtil } from '../../../src/util.js'; import { GBUtil } from '../../../src/util.js';
const { WAState, List, Buttons, Client, MessageMedia } = pkg; const { WAState, List, Buttons, Client, MessageMedia } = pkg;
import twilio from 'twilio'; import twilio from 'twilio';
const { MessagingResponse } = twilio.twiml;
/** /**
* Support for Whatsapp. * Support for Whatsapp.