Alternativa de ‘criação’ do Rails: sem senha (2FA) e usuário sem banco de dados Login / Inscrição usando senha única em 2 minutos

Definição

Login sem senha (autenticação) significa que o usuário não precisa se lembrar de suas credenciais. Em vez disso, quando ela se identifica usando um nome de usuário, o sistema envia para o dispositivo associado ao nome de usuário uma senha de uso único (OTP), que ela usa para completar o login. Ao exigir um dispositivo no lugar de uma senha tradicional, você também ganha a segurança extra da autenticação de dois fatores (2FA).

Beneficiar

Por que implementamos a autenticação de usuário sem banco de dados e sem senha?

  • Reduza o esforço de desenvolvimento
    • O login sem senha evita muitos fluxos de gerenciamento de usuário, por exemplo, nenhuma redefinição de senha, nenhum avaliador de força de senha, etc.
  • Menos atrito para adquirir usuários; os usuários não precisam criar credenciais
  • A bordo usuários reais que podem ser contatados em tempo hábil, ou seja, por número de telefone, o que é fundamental para o compartilhamento econômico, fintech, indústria de reservas online
  • Reduza a rotatividade resultante de usuários que abandonam nosso serviço por esquecerem suas senhas devido a logins pouco frequentes

Resultado em 2 minutos

Você começa criando um aplicativo Ruby On Rails totalmente novo e termina com um aplicativo que tem inscrição sem senha, login, páginas de logout e um método em seu back-end current_user_hashque retorna o usuário conectado no momento.

Confira o vídeo de 2 minutos: http://www.youtube.com/watch?v=MNubspdhWM8_ctg

Confira o exemplo de código do aplicativo: https://github.com/ringcaptcha/user-management-rails-gem-sample-app

Requisitos

Esboço

  1. Faça o aplicativo Rails
  2. Instale user_management_railsjoia
  3. bundle install
  4. Execute o gerador para criar páginas de inscrição, login e logout
  5. Abra o servidor Rails
  6. Tentar!

Detalhes

1. Faça o aplicativo Rails

$ rails new YOUR_APP_NAME

2. Adicionar user_management_railsao YOUR_APP_NAMEdiretório / Gemfile

gem 'user_management_rails'

3. Instale a gema

$ bundle install

4. Gere as rotas, controladores e visualizações

Esta etapa requer que você se inscreva para uma conta gratuita no RingCaptcha, para obter chaves API para enviar SMS e armazenar usuários.

pwl_2.png

  • Depois de fazer login, vá para https://my.ringcaptcha.com/apps (clicando em ‘Meus aplicativos’ no menu esquerdo) e clique em ‘Criar novo’ no canto superior direito

pwl_3.png

Configure seu aplicativo:

  • Selecione ‘Web’ como ‘Tipo de aplicativo’
  • Adicione o seu nome de ‘Domínio’ (sem http / https)
  • Clique em ‘Criar aplicativo’

pwl_4.png

  • Na tela ‘Meus aplicativos’, você pode ver seu aplicativo e, na coluna ‘Chave de aplicativo’, está o seu RINGCAPTCHA_APP_KEY

pwl_5.png

  • Clique no ‘Ícone de engrenagem’ (‘Personalizar’) no lado direito do seu aplicativo

pwl_6.png

Na janela ‘Personalizar’, personalize o Gerenciamento de usuários:

  • Clique em ‘AVANÇADO’
  • Marque ” Habilitar Integração de Gerenciamento de Usuário ‘
  • Clique em ‘Salvar alterações’

pwl_7.png

Na janela ‘Personalizar’, obtenha o UM_KEY

  • Clique em ‘AVANÇADO’
  • Agora você deve ver ‘UserManagement Application ID’, que é o seu UM_KEY

pwl_8.png

Com RINGCAPTCHA_APP_KEYe UM_KEY, você pode enviar SMS / OTP de voz e armazenar o telefone verificado na nuvem, respectivamente. Você pode gerar a rota, os controladores e o código de visualizações usando o gerador, que espera essas chaves

$ rails generate user_management_rails:install --ringcaptcha-key=YOUR_RINGCAPTCHA_APP_KEY --um-key=YOUR_UM_KEY

Estes são os arquivos gerados:

create  config/initializers/user_management.rb
create app
/controllers/user_management_controller.rb
create app
/views/user_management/signup.html.erb
create app
/views/user_management/login.html.erb
create app
/views/user_management/home.html.erb
route root
'user_management#signup'
route post
'/logout', to: 'user_management#logout'
route
get '/login', to: 'user_management#login'
route
get '/home', to: 'user_management#home'
route mount
UserManagementRails::Engine, at: '/'

5. Inicie o servidor Rails

$ rails s

6. Experimente!

http://localhost:3000/

Conclusão

No Rails, agora você pode usar o método current_user_hash, para recuperar um que Hashrepresenta o usuário logado.