from flask import current_app from twilio.rest import Client, TwilioException def _get_twilio_verify_client(): return Client( current_app.config['TWILIO_ACCOUNT_SID'], current_app.config['TWILIO_AUTH_TOKEN']).verify.services( current_app.config['TWILIO_VERIFY_SERVICE_ID']) def request_verification_token(phone): verify = _get_twilio_verify_client() try: verify.verifications.create(to=phone, channel='sms') except TwilioException: verify.verifications.create(to=phone, channel='call') def check_verification_token(phone, token): verify = _get_twilio_verify_client() try: result = verify.verification_checks.create(to=phone, code=token) except TwilioException: return False return result.status == 'approved'