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_hash
que 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
user_management_rails
gem: https://rubygems.org/gems/user_management_rails- Conta gratuita no RingCaptcha para enviar OTP por SMS / voz e usuários da loja: https://ringcaptcha.com
Esboço
- Faça o aplicativo Rails
- Instale
user_management_rails
joia bundle install
- Execute o gerador para criar páginas de inscrição, login e logout
- Abra o servidor Rails
- Tentar!
Detalhes
1. Faça o aplicativo Rails
$ rails new YOUR_APP_NAME
2. Adicionar user_management_rails
ao YOUR_APP_NAME
diretó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.
- Registre-se no RingCaptcha em https://my.ringcaptcha.com/register
- 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
Configure seu aplicativo:
- Selecione ‘Web’ como ‘Tipo de aplicativo’
- Adicione o seu nome de ‘Domínio’ (sem http / https)
- Clique em ‘Criar aplicativo’
- Na tela ‘Meus aplicativos’, você pode ver seu aplicativo e, na coluna ‘Chave de aplicativo’, está o seu
RINGCAPTCHA_APP_KEY
- Clique no ‘Ícone de engrenagem’ (‘Personalizar’) no lado direito do seu aplicativo
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’
Na janela ‘Personalizar’, obtenha o UM_KEY
- Clique em ‘AVANÇADO’
- Agora você deve ver ‘UserManagement Application ID’, que é o seu
UM_KEY
Com RINGCAPTCHA_APP_KEY
e 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 Hash
representa o usuário logado.