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

devise @ rails summit 2009 - 2009.10.13