ruby-on-rails - rails - devise user logged in
Número de teléfono basado en la autenticación de Devise para aplicaciones móviles (3)
Soy el OP, y desde que hice esta pregunta, me encontré con una gema llamada active_model_opt https://github.com/heapsource/active_model_otp
Esta joya no es exactamente un complemento de diseño, pero hace exactamente lo que estaba buscando. Básicamente, al agregarlo a su modelo de usuario genera contraseñas de un solo uso que son válidas por un cierto período de tiempo. Incluso tiene una función incorporada para "autenticarse" utilizando la contraseña de un solo uso.
De todos modos, espero que cualquiera que haya encontrado esta pregunta pueda encontrar útil esta respuesta.
Todos sabemos que Devise es un estándar de facto para implementar autenticación en aplicaciones basadas en rieles.
De forma predeterminada, usa el correo electrónico como ID, pero también le permite usar nombres de usuario. También tiene el módulo "Confirmable" que le permite confirmar la dirección de correo electrónico enviando un correo electrónico y haciendo clic en el enlace para verificar su correo electrónico.
Estaba buscando algo similar para números de teléfono, básicamente aceptando números de teléfono como ID principal en lugar de correos electrónicos, y luego confirmo el número de teléfono enviando un código de autenticación como mensaje SMS al número del usuario a través de algo como Twilio, y luego dejo que el usuario confirmarlo ingresando el código (o incluso dejar que el usuario haga clic a través de un enlace generado para verificar al igual que lo hacen con los correos electrónicos)
La razón por la que esperaba que hubiera un módulo de diseño popular para esta funcionalidad era porque parece que la mayoría de las aplicaciones sociales móviles aceptan números de teléfono y confirman el número hoy en día. Debe haber alguien que piense que esto era un problema y un módulo de fuente abierta para esto. Sin embargo, no pude encontrar ninguno popular. En realidad, para ser precisos, aquí están los únicos tres enlaces relevantes que he encontrado sobre esto:
- https://github.com/giano/devise_sms_activable
- https://github.com/baranov-sv/devise_sms_confirmable
- Los rieles se registran Usuario utilizando el número de teléfono y la confirmación
Ninguno de ellos conduce a una solución funcional (he intentado devise_sms_activable pero no funciona para los rieles 4, y desconfío del bajo número de estrellas). Quería preguntar si hay alguna solución viable para esto. ¿Me estoy perdiendo de algo? ¿Se ha mencionado este tema entre la comunidad de desarrolladores de Devise? Tengo curiosidad acerca de la solución, pero si no hay ninguna, al menos agradecería cualquier respuesta sobre por qué esto no está disponible.
[ACTUALIZAR]
Creo que la pregunta podría haber sido un poco engañosa. Si bien puedo construirlo solo, no me gusta reinventar la rueda. Básicamente mi intención con esta pregunta fue:
- Si hay algún paquete que haga esto (como todos los módulos como confirmable, token_authentcatable, etc. Tal vez ni siquiera un módulo Devise y podría ser completamente diferente)
- O, si no existe una solución preconstruida, ¿por qué no hay una? Simplemente no puedo comprender por qué no hay tal solución que puedo encontrar cuando todo el mundo parece estar haciendo esto.
Acepto gustosamente cuando recibo una respuesta al # 1 o al # 2. ¡Gracias!
Probablemente no sea exactamente lo que el OP estaba buscando, pero para los desarrolladores de Rails en China, ahora hay una gema llamada china_sms que integra automáticamente varios servicios de envío de SMS chinos en su aplicación Rails. Lo agregaré aquí en caso de que alguien lo encuentre útil.
He investigado eso antes ... pero los requisitos del proyecto han cambiado ... por lo que todos los siguientes son enlaces relativos que se encuentran en el wiki de diseño
- esto cómo le permite iniciar sesión y autenticarse con diferentes campos que no sean la dirección de correo electrónico
- Un servicio simple de autenticación de tokens para dispositivos móviles que utiliza Rails 3 y Devise.
puede usar los tuts anteriores junto con Twilio para enviar el token de autenticación personalizado creado y autenticar al usuario con un número de teléfono que no sea el de correo electrónico.
[ACTUALIZAR]
ya que mencionó una solución que ya funciona, creo que esto es lo que está buscando. Active Model OTP y esta entrada de blog es nueva y no tuve la oportunidad de probarla: D
También encontré la extensión de diseño de Autenticación de dos factores
[ACTUALIZACIÓN agosto / 2017]
Basado en un proyecto en el que estuve trabajando recientemente, descubrí que Tinfoil / devise-two-factor proporciona una integración realmente buena / extensible con el diseño (y es altamente personalizable) ... usando la gema ROTP interna, puede proporcionar una longitud diferente códigos basados en diferentes métodos de autenticación (APP / SMS) y diferentes ventanas / deriva permitidas por método sin tener que escribir todo desde cero. (Muy recomendado si quiere potencia total sobre un flujo de trabajo complejo)