Skip to content

Add authentication to access passkeys#919

Closed
rafaella-martino wants to merge 4 commits intomasterfrom
rm--add_authentication_restiction_to_manage_passkeys
Closed

Add authentication to access passkeys#919
rafaella-martino wants to merge 4 commits intomasterfrom
rm--add_authentication_restiction_to_manage_passkeys

Conversation

@rafaella-martino
Copy link
Copy Markdown
Contributor

@rafaella-martino rafaella-martino commented Aug 7, 2025

Resumen:

  • El usuario debe autenticarse con su contraseña para acceder a sus Passkeys 🔑 .

Detalles:

  • De momento se implementó guardar en la session un boolean password_passkey_verification:

    • en true: no le pide al usuario ingresar su contraseña si quiere acceder a sus passkeys
    • en false: le pide al usuario ingresar su contraseña si quiere acceder a sus passkeys
  • Este boolean se setea en false en el application_controller en una before_action, con la excepción al acceder a las acciones del passkeys_controller (ya que una vez ingresada la contraseña la idea es que el usuario pueda manejar sus passkeys mientras esta en usuarios/passkeys)

Pregunta:

  • Al ser esta implementación probablemente "momentánea", capaz alguno conoce una mejor forma de implementar este mecanismo de acceso a las Passkeys. Capaz en otro PR se podria hacer que este acceso se mantenga por cierto tiempo y luego expire 🙂

Screenshot:

image

@EmilioCristalli
Copy link
Copy Markdown
Collaborator

Esto significa que si abro la página de passkeys, pongo la contraseña, y en otra tab abro otra página, al volver a la tab de passkeys voy a tener que poner contraseña de nuevo?

Cómo lo manejan otras aplicaciones?

@rafaella-martino
Copy link
Copy Markdown
Contributor Author

Cómo lo manejan otras aplicaciones?

Por lo que estuve probando (Github y Google durante unos 5 minutos), parece que luego de que se realiza la autenticación para acceder a tus Passkeys, salvo que selecciones Cancelar o agregues una Passkey, el acceso a tus passkeys no expira.
Que opinas de implementar algo asi? @EmilioCristalli

@santiagorodriguez96
Copy link
Copy Markdown
Collaborator

Cómo lo manejan otras aplicaciones?

Por lo que estuve probando (Github y Google durante unos 5 minutos), parece que luego de que se realiza la autenticación para acceder a tus Passkeys, salvo que selecciones Cancelar o agregues una Passkey, el acceso a tus passkeys no expira. Que opinas de implementar algo asi? @EmilioCristalli

Yo diría que sí! Los tiempos específicos podemos verlos luego pero iría por ahí

Comment on lines +69 to +73
def verify_password
unless session[:password_passkey_verification]
render :verify_password
end
end
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Qué opinan de hacer algo un poco más genérico?

Pienso que quizás podríamos tener algún tipo de PasswordVerificationController o algo así que luego de verificar la contraseña redirija a donde digamos 🤔

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En mastodon lo solucionaron con un concern:

https://github.com/mastodon/mastodon/blob/93f3c72/app/controllers/concerns/challengable_concern.rb#L1-L16

No tenemos necesariamente que ir por ahí, pero me pareció estaba bueno vicharlo

<div class="relative w-full mb-6" data-controller="show-password">
<%= f.password_field :password, class: "bg-white w-full rounded-md px-3 py-1.5 outline-1 outline-gray-300 focus:outline-2 focus:outline-indigo-600 with-error:outline-red-500 with-error:focus:outline-red-600", data: { show_password_target: "password" }, required: true %>

<%= button_tag type: "button", class: "flex items-center absolute inset-y-0 right-0 px-3 focus:outline-indigo-600 cursor-pointer hover:text-indigo-700", data: { action: "show-password#toggle" } do %>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<%= button_tag type: "button", class: "flex items-center absolute inset-y-0 right-0 px-3 focus:outline-indigo-600 cursor-pointer hover:text-indigo-700", data: { action: "show-password#toggle" } do %>
<%= f.submit class: "flex items-center absolute inset-y-0 right-0 px-3 focus:outline-indigo-600 cursor-pointer hover:text-indigo-700", data: { action: "show-password#toggle" } do %>

@nicolastemciuc
Copy link
Copy Markdown
Member

Entiendo que estaría bueno (y como usuario esperaría) poder utilizar tambien una passkey para acceder a esta sección 🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants