SlideShare a Scribd company logo
Autenticação flexível com
           Devise



http://github.com/plataformatec/devise
                                  Plataforma 2009
Soluções Existentes




              Plataforma 2009
Clearance
• Pontos positivos
  – Estrutura completa, como engine (MVC)
  – Confirmação de conta
  – Recuperação de senha

• Pontos negativos
  – Pouco flexível (apenas model User)
  – Não modularizado



                                            Plataforma 2009
Authlogic
• Pontos positivos
  – Modelo bem flexível
  – Criptografia
  – Magic columns

• Pontos negativos
  – Não é solução completa (MVC) como o Clearance
  – Trata a sessão como modelo



                                          Plataforma 2009
Nossa proposta




         Plataforma 2009
Devise
• Pontos positivos
  – Rack based (via Warden): Rails, Metal, Sinatra
  – Solução completa (MVC), como engine
  – Múltiplos roles (logar como admin, user, ...)
  – Modular e flexível

• Pontos negativos
  – Pouca base instalada
  – Menos de 10 watchers no github

                                             Plataforma 2009
class User < ActiveRecord::Base
 devise :authenticable
end




                                  Plataforma 2009
class User < ActiveRecord::Base
 devise :confirmable
end




                                  Plataforma 2009
class User < ActiveRecord::Base
 devise :recoverable
end




                                  Plataforma 2009
class User < ActiveRecord::Base
 devise :validatable
end




                                  Plataforma 2009
class User < ActiveRecord::Base
 devise :all
end




                                  Plataforma 2009
ActionController::Routing::Routes.draw do |map|
 map.devise_for :users
end




                                        Plataforma 2009
...tem mais coisa vindo




                  Plataforma 2009
Proteção contra Brute Force


    self.attempts_count = 10
    self.attempts_timeframe = 2.hours




                                    Plataforma 2009
Remember me


self.remember_me = 2.weeks




                             Plataforma 2009
Migratable

create_table :users do |t|
 t.authenticable
 t.confirmable
end



                             Plataforma 2009
Magic colums

 self.login_count
 self.last_request_at
 self.last_login_ip




                        Plataforma 2009
github.com/plataformatec/devise

   blog.plataformatec.com.br



                          Plataforma 2009

More Related Content

Similar to devise @ rails summit 2009 - 2009.10.13

Symfony - PHP pra gente grande
Symfony - PHP pra gente grandeSymfony - PHP pra gente grande
Symfony - PHP pra gente grande
Luã de Souza
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
Giovanni Bassi
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
Alexandre Tarifa
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?
akamud
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
Rafael Chaves
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
Rogério Moraes de Carvalho
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
Renato Groff
 
BDD-NamoroOn
BDD-NamoroOnBDD-NamoroOn
BDD-NamoroOn
Marcio Marchini
 
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-EndsSingle-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Daiana Cambruzzi Avila
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration Patterns
Bruno Borges
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
tdc-globalcode
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
Leandro Magnabosco
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
Waldyr Felix
 
Tc aula 07
Tc aula 07Tc aula 07
Tc aula 07
WesleySmoke
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
Renato Groff
 
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Renato Groff
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
Lorival Smolski Chapuis
 
Curso Intensivo de N8N
Curso Intensivo de N8NCurso Intensivo de N8N
Curso Intensivo de N8N
Autotic
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE Plasma
Sandro Andrade
 

Similar to devise @ rails summit 2009 - 2009.10.13 (20)

Symfony - PHP pra gente grande
Symfony - PHP pra gente grandeSymfony - PHP pra gente grande
Symfony - PHP pra gente grande
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?Publiquei meu site e não funcionou, e agora?
Publiquei meu site e não funcionou, e agora?
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
 
BDD-NamoroOn
BDD-NamoroOnBDD-NamoroOn
BDD-NamoroOn
 
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-EndsSingle-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
Single-SPA: Como este framework pode me ajudar na construção de Micro Front-Ends
 
Twitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration PatternsTwitter, Apache Camel e Enterprise Integration Patterns
Twitter, Apache Camel e Enterprise Integration Patterns
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Tc aula 07
Tc aula 07Tc aula 07
Tc aula 07
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
 
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Curso Intensivo de N8N
Curso Intensivo de N8NCurso Intensivo de N8N
Curso Intensivo de N8N
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE Plasma
 

devise @ rails summit 2009 - 2009.10.13