class WebAuthn::CredentialCreationOptions

Constants

DEFAULT_RP_NAME

Attributes

attestation[RW]
authenticator_selection[RW]
exclude_credentials[RW]
extensions[RW]
rp_name[R]
user_display_name[R]
user_id[R]
user_name[R]

Public Class Methods

new( attestation: nil, authenticator_selection: nil, exclude_credentials: nil, extensions: nil, user_id:, user_name:, user_display_name: nil, rp_name: nil ) click to toggle source
Calls superclass method
# File lib/webauthn/credential_creation_options.rb, line 25
def initialize(
  attestation: nil,
  authenticator_selection: nil,
  exclude_credentials: nil,
  extensions: nil,
  user_id:,
  user_name:,
  user_display_name: nil,
  rp_name: nil
)
  super()

  @attestation = attestation
  @authenticator_selection = authenticator_selection
  @exclude_credentials = exclude_credentials
  @extensions = extensions
  @user_id = user_id
  @user_name = user_name
  @user_display_name = user_display_name
  @rp_name = rp_name
end

Public Instance Methods

pub_key_cred_params() click to toggle source
# File lib/webauthn/credential_creation_options.rb, line 75
def pub_key_cred_params
  configuration.algorithms.map do |alg_name|
    { type: "public-key", alg: COSE::Algorithm.by_name(alg_name).id }
  end
end
rp() click to toggle source
# File lib/webauthn/credential_creation_options.rb, line 81
def rp
  @rp ||= CredentialRPEntity.new(name: rp_name || configuration.rp_name || DEFAULT_RP_NAME)
end
to_h() click to toggle source
# File lib/webauthn/credential_creation_options.rb, line 47
def to_h
  options = {
    challenge: challenge,
    pubKeyCredParams: pub_key_cred_params,
    timeout: timeout,
    user: { id: user.id, name: user.name, displayName: user.display_name },
    rp: { name: rp.name }
  }

  if attestation
    options[:attestation] = attestation
  end

  if authenticator_selection
    options[:authenticatorSelection] = authenticator_selection
  end

  if exclude_credentials
    options[:excludeCredentials] = exclude_credentials
  end

  if extensions
    options[:extensions] = extensions
  end

  options
end
user() click to toggle source
# File lib/webauthn/credential_creation_options.rb, line 85
def user
  @user ||= CredentialUserEntity.new(id: user_id, name: user_name, display_name: user_display_name)
end

Private Instance Methods

configuration() click to toggle source
# File lib/webauthn/credential_creation_options.rb, line 93
def configuration
  WebAuthn.configuration
end