def create_default_device(self, user_profile: UserProfile, number: str = "+12125550100") -> None: phone_device = PhoneDevice(user=user_profile, name='default', confirmed=True, number=number, key='abcd', method='sms') phone_device.save()
def create_default_device( self, user_profile: UserProfile, number: str = "+12125550100" ) -> None: phone_device = PhoneDevice( user=user_profile, name="default", confirmed=True, number=number, key="abcd", method="sms", ) phone_device.save()
def create_default_device(self, user_profile: UserProfile, number: str="+12223334444") -> None: phone_device = PhoneDevice(user=user_profile, name='default', confirmed=True, number=number, key='abcd', method='sms') phone_device.save()
def post(self, request, *args, **kwargs): request_data = json.loads(request.body.decode("utf-8")) form = AuthenticationDeviceForm(request_data) if form.is_valid(): device_type = form.cleaned_data.get('device_type') if device_type == 'authenticator': code = form.cleaned_data.get('code') if code: try: device = TOTPDevice.objects.get(user=request.user) if device.verify_token(code): device.confirmed = True device.save() return self.success_response() except: pass return self.error_response( general_errors=["Invalid code. Please try again."]) else: device = None try: device = TOTPDevice.objects.get(user=request.user) except: pass if not device: device_data = { 'user': request.user, 'name': 'authentication_app', 'confirmed': False } device = TOTPDevice.objects.create(**device_data) import qrcode import qrcode.image.svg img = qrcode.make(device.config_url, image_factory=qrcode.image.svg.SvgImage) img_response = HttpResponse(content_type='image/svg+xml') img.save(img_response) import base64 return self.success_response( result={ 'config_url': device.config_url, 'svg_image': base64.b64encode(img_response.content).decode( "utf-8") }) elif device_type == 'sms': code = form.cleaned_data.get('code') if code: try: device = PhoneDevice.objects.get(user=request.user) if device.verify_token(code): device.confirmed = True device.save() return self.success_response() except: pass return self.error_response( general_errors=["Invalid code. Please try again."]) else: device = PhoneDevice( user=request.user, name='sms', number='+1' + request_data.get('mobile'), method='sms', confirmed=False, ) device.generate_challenge() device.save() return self.success_response() return self.error_response() return self.form_error_response(form)