Class: Devise::PasskeyRegistrationOptionsController

Inherits:
DeviseController
  • Object
show all
Defined in:
app/controllers/devise/passkey_registration_options_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/devise/passkey_registration_options_controller.rb', line 10

def create
  passkey_options =
    WebAuthn::Credential.options_for_create(
      user: {
        id: resource.webauthn_id,
        name: resource_human_palatable_identifier
      },
      exclude: resource.passkeys.pluck(:external_id),
      authenticator_selection: {
        resident_key: "required",
        user_verification: "required"
      }
    )

  # Store challenge in session for later verification
  session[:webauthn_challenge] = passkey_options.challenge

  render json: passkey_options
end