class WebAuthn::Context
Attributes
client_data_json[RW]
Public Class Methods
for(encoded_client_data_json, origin:, challenge:)
click to toggle source
# File lib/web_authn/context.rb, line 34 def for(encoded_client_data_json, origin:, challenge:) client_data_json = ClientDataJSON.decode encoded_client_data_json context = case client_data_json.type when 'webauthn.create' Registration.new(client_data_json) when 'webauthn.get' Authentication.new(client_data_json) else raise InvalidContext, 'Unknown Client Data JSON Type' end context.verify_session!(origin: origin, challenge: challenge) end
new(client_data_json)
click to toggle source
# File lib/web_authn/context.rb, line 5 def initialize(client_data_json) self.client_data_json = client_data_json end
Public Instance Methods
authentication?()
click to toggle source
# File lib/web_authn/context.rb, line 23 def authentication? false end
registration?()
click to toggle source
# File lib/web_authn/context.rb, line 19 def registration? false end
verify_flags!()
click to toggle source
# File lib/web_authn/context.rb, line 27 def verify_flags! unless flags.uv? || flags.up? raise InvalidAssertion, 'Missing Flag: uv" nor "up"' end end
verify_session!(origin:, challenge:)
click to toggle source
# File lib/web_authn/context.rb, line 9 def verify_session!(origin:, challenge:) if client_data_json.origin != origin raise InvalidContext, 'Invalid Origin' end if client_data_json.challenge != challenge raise InvalidContext, 'Invalid Challenge' end self end