summary refs log tree commit diff
path: root/src/api/routes/auth/mfa
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-02-03 16:28:12 +1100
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-02-03 16:28:12 +1100
commitd899942b1a4a292cd9692ad338fd2552efbdaf26 (patch)
tree9b493292b758e8a83b708bba2028f2c401272fab /src/api/routes/auth/mfa
parentremove MANAGE_GUILDS, EDIT_FLAGS, SELF_EDIT_FLAGS, MANAGE_GROUPS from default... (diff)
parentvarious fixes for webauthn (#973) (diff)
downloadserver-ts-d899942b1a4a292cd9692ad338fd2552efbdaf26.tar.xz
Merge branch 'master' of github.com:fosscord/fosscord-server
Diffstat (limited to 'src/api/routes/auth/mfa')
-rw-r--r--src/api/routes/auth/mfa/webauthn.ts17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/api/routes/auth/mfa/webauthn.ts b/src/api/routes/auth/mfa/webauthn.ts

index e574b969..c4334c4c 100644 --- a/src/api/routes/auth/mfa/webauthn.ts +++ b/src/api/routes/auth/mfa/webauthn.ts
@@ -64,20 +64,23 @@ router.post( await User.update({ id: user.id }, { totp_last_ticket: "" }); const clientAttestationResponse = JSON.parse(code); - const securityKey = await SecurityKey.findOneOrFail({ - where: { - user_id: req.user_id, - key_id: clientAttestationResponse.rawId, - }, - }); if (!clientAttestationResponse.rawId) throw new HTTPError("Missing rawId", 400); clientAttestationResponse.rawId = toArrayBuffer( - Buffer.from(clientAttestationResponse.rawId, "base64"), + Buffer.from(clientAttestationResponse.rawId, "base64url"), ); + const securityKey = await SecurityKey.findOneOrFail({ + where: { + key_id: Buffer.from( + clientAttestationResponse.rawId, + "base64url", + ).toString("base64"), + }, + }); + const assertionExpectations: ExpectedAssertionResult = JSON.parse( Buffer.from( clientAttestationResponse.response.clientDataJSON,