Add Optional Two-Factor Authentication (2FA) for User Accounts
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- ruby
- Área
- authentication, database, frontend, security
Línea de trabajo
Empieza localizando la configuración de cuenta existente, el flujo de autenticación y la tabla de usuarios descritos en la issue. Revisa cómo encajarían rotp y rqrcode en esos puntos de entrada y, después, verifica que la 2FA opcional, el inicio de sesión con TOTP, los secretos seguros y la recuperación mediante códigos de respaldo cumplan los criterios de aceptación indicados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Ruby
- Estrellas
- 16
- Forks
- 11
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rubyforgood/skillrx
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
rubyforgood/skillrx#736 ·
-
Discrepancies between SkillRx and AzureQuizá libre de nuevo @dcollie2 la tomó hace 66 días y no hay ningún pull request abierto. Abierto
rubyforgood/skillrx#734 · 2 asignados ·
-
Requirements Incomplete
Dificultad 4/5 3-5 días Aptitud para principiantes 66/100
rubyforgood/skillrx#700 ·
-
Topics UI TweaksPosiblemente ocupada @LucassF5 la tomó hace 130 días. Abiertoenhancement good first issue User Interface
rubyforgood/skillrx#699 · 2 comentarios · 1 asignado ·
-
bug User Interface
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
rubyforgood/skillrx#606 ·
Todos los issues de rubyforgood/skillrx
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
-
L: javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dependabot/dependabot-core#16744 ·
Los mantenedores suelen responder en 1 día
-
area:core-lib P2 size:S
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día