microblog2/app/auth/twilio_verify.py

26 lines
806 B
Python

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'