4
4
5
5
import fido2 .features
6
6
from django .conf import settings
7
+ from django .contrib .auth import get_user_model
7
8
from django .http import JsonResponse
8
9
from django .utils import timezone
9
10
from django .views .decorators .csrf import csrf_exempt
@@ -22,7 +23,10 @@ def enable_json_mapping():
22
23
23
24
24
25
def getUserCredentials (user ):
25
- return [AttestedCredentialData (websafe_decode (uk .token )) for uk in UserPasskey .objects .filter (user__username = user )]
26
+ User = get_user_model ()
27
+ username_field = User .USERNAME_FIELD
28
+ filter_args = {"user__" + username_field : user }
29
+ return [AttestedCredentialData (websafe_decode (uk .token )) for uk in UserPasskey .objects .filter (** filter_args )]
26
30
27
31
28
32
def getServer (request = None ):
@@ -61,8 +65,8 @@ def reg_begin(request):
61
65
auth_attachment = getattr (settings ,'KEY_ATTACHMENT' , None )
62
66
registration_data , state = server .register_begin ({
63
67
u'id' : urlsafe_b64encode (request .user .username .encode ("utf8" )),
64
- u'name' : request .user .username ,
65
- u'displayName' : request .user .username ,
68
+ u'name' : request .user .get_username () ,
69
+ u'displayName' : request .user .get_full_name ()
66
70
}, getUserCredentials (request .user ), authenticator_attachment = auth_attachment , resident_key_requirement = fido2 .webauthn .ResidentKeyRequirement .PREFERRED )
67
71
request .session ['fido2_state' ] = state
68
72
return JsonResponse (dict (registration_data ))
0 commit comments