Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Add Optional Two-Factor Authentication (2FA) for User Accounts

Aberta
#422 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
ruby

Direção de pesquisa

Comece localizando as configurações de conta existentes, o fluxo de autenticação e a tabela de usuários descritos na issue. Analise como rotp e rqrcode se encaixariam nesses pontos de entrada e, em seguida, verifique se a 2FA opcional, o login com TOTP, os secrets seguros e a recuperação por códigos de backup atendem aos critérios de aceitação listados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Requirements Incomplete

To improve account security, we should add optional two-factor authentication (2FA) for users. This will allow users to enable 2FA via TOTP (e.g., Google Authenticator, Authy) in their account settings, but not require it for all users.

Requirements:

  • Users can enable or disable 2FA from their account settings.
  • When enabled, users must scan a QR code with an authenticator app to set up 2FA.
  • On login, if 2FA is enabled, users must enter a valid TOTP code after password authentication.
  • Users should be able to generate and view backup codes for account recovery.
  • Store TOTP secrets and backup codes securely.
  • UI/UX for enabling/disabling 2FA, entering codes, and managing backup codes.

Technical Notes:

  • Use the rotp gem for TOTP generation/validation.
  • Use the rqrcode gem to generate QR codes.
  • Add otp_secret and otp_backup_codes columns to the users table.
  • Update authentication flow to require TOTP code if 2FA is enabled.

Acceptance Criteria:

  • Users can opt in/out of 2FA.
  • 2FA is enforced only for users who have enabled it.
  • Backup codes are available and can be regenerated.
  • All sensitive data is handled securely.
Linguagem predominante
Ruby
Estrelas
16
Forks
11
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rubyforgood/skillrx

Todas as issues de rubyforgood/skillrx

Issues semelhantes

Mais issues de Ruby

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.