Add a purpose to challanges

This commit is contained in:
Stanko K.R.
2026-03-25 17:57:37 +01:00
parent 37ff66d552
commit 54cb1a140f
14 changed files with 38 additions and 17 deletions
@@ -32,10 +32,10 @@ class My::PasskeyChallengesControllerTest < ActionDispatch::IntegrationTest
signed_message = Base64.urlsafe_decode64(challenge)
travel Rails.configuration.action_pack.web_authn.creation_challenge_expiration - 1.second
assert ActionPack::WebAuthn.challenge_verifier.verified(signed_message)
assert ActionPack::WebAuthn.challenge_verifier.verified(signed_message, purpose: "registration")
travel 2.seconds
assert_nil ActionPack::WebAuthn.challenge_verifier.verified(signed_message)
assert_nil ActionPack::WebAuthn.challenge_verifier.verified(signed_message, purpose: "registration")
end
end
@@ -49,10 +49,10 @@ class My::PasskeyChallengesControllerTest < ActionDispatch::IntegrationTest
signed_message = Base64.urlsafe_decode64(challenge)
travel Rails.configuration.action_pack.web_authn.request_challenge_expiration - 1.second
assert ActionPack::WebAuthn.challenge_verifier.verified(signed_message)
assert ActionPack::WebAuthn.challenge_verifier.verified(signed_message, purpose: "authentication")
travel 2.seconds
assert_nil ActionPack::WebAuthn.challenge_verifier.verified(signed_message)
assert_nil ActionPack::WebAuthn.challenge_verifier.verified(signed_message, purpose: "authentication")
end
end
end
@@ -13,7 +13,7 @@ class My::PasskeysControllerTest < ActionDispatch::IntegrationTest
end
test "register a passkey" do
challenge = request_webauthn_challenge
challenge = request_webauthn_challenge(purpose: "registration")
assert_difference -> { identities(:kevin).passkeys.count }, 1 do
post my_passkeys_path, params: build_attestation_params(challenge: challenge)