def get_context_data(self, **kwargs): ctx = super().get_context_data() if 'webauthn_challenge' in self.request.session: del self.request.session['webauthn_challenge'] challenge = generate_challenge(32) self.request.session['webauthn_challenge'] = challenge devices = [ device.webauthnuser for device in WebAuthnDevice.objects.filter(confirmed=True, user=self.request.user) ] + [ device.webauthnuser for device in U2FDevice.objects.filter(confirmed=True, user=self.request.user) ] if devices: webauthn_assertion_options = webauthn.WebAuthnAssertionOptions( devices, challenge) ad = webauthn_assertion_options.assertion_dict ad['extensions'] = {'appid': get_u2f_appid(self.request)} ctx['jsondata'] = json.dumps(ad) return ctx
def app_id(self): return get_u2f_appid(self.request)