Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Do Devise ao scratch. Porque apaguei todas as g...

Do Devise ao scratch. Porque apaguei todas as gems de autenticação do projeto

Nesse talk, falei o porquê de no Scoola não usarmos mais qualquer gem de autenticação e fazermos todo o sistema no braço. Autenticar, validar, encriptar senhas e etc. Nós pensamos no Clearance, usamos e saímos do Devise, passamos pelo Warden e agora tudo q restou foram algumas classes feitas por nós mesmos.

Weldys Santos

October 20, 2012
Tweet

More Decks by Weldys Santos

Other Decks in Programming

Transcript

  1. DO DEVISE AO SCRATCH Porque removi todas as gems de

    autenticação do projeto Weldys Santos - @weldyss Developer at Scoola. Not school. Scoola. Monday, October 22, 12
  2. O QUE QUERÍAMOS FAZER? autenticar usuários vários tipos de usuários

    logins de lugares diferentes Monday, October 22, 12
  3. O QUE QUERÍAMOS FAZER? autenticar usuários vários tipos de usuários

    logins de lugares diferentes não repetir código Monday, October 22, 12
  4. O QUE QUERÍAMOS FAZER? autenticar usuários vários tipos de usuários

    logins de lugares diferentes não repetir código não configurar demais Monday, October 22, 12
  5. O QUE QUERÍAMOS FAZER? autenticar usuários vários tipos de usuários

    logins de lugares diferentes não repetir código não configurar demais ser fodão Fuck-Yeah, fiz sozinho! Monday, October 22, 12
  6. O QUE QUERÍAMOS FAZER? autenticar usuários vários tipos de usuários

    logins de lugares diferentes não repetir código não configurar demais ser fodão Fuck-Yeah, fiz sozinho! Monday, October 22, 12
  7. CLEARANCE enxuto mas enxuto demais complexidade onde não precisava muita

    configuração configuração? Isso não é JAVA, porra! Monday, October 22, 12
  8. CLEARANCE enxuto mas enxuto demais complexidade onde não precisava muita

    configuração configuração? Isso não é JAVA, porra! Monday, October 22, 12
  9. DEVISE faz muito bem o que tem que fazer seguro

    desde que seu auth não seja tão complexo Monday, October 22, 12
  10. DEVISE faz muito bem o que tem que fazer seguro

    desde que seu auth não seja tão complexo multiplos logins? Melhor não, hein! Monday, October 22, 12
  11. DEVISE faz muito bem o que tem que fazer seguro

    desde que seu auth não seja tão complexo multiplos logins? Melhor não, hein! MUITO. Mas muito código só pra autenticar! Monday, October 22, 12
  12. WARDEN Rack-based \o/ fantástico pra APIs estratégias de autenticação exige

    muita repetição de código nas estratégias Monday, October 22, 12
  13. REMOVENDO TUDO... abstrair o que as gems tem de melhor

    buscar flexibilidade Monday, October 22, 12
  14. REMOVENDO TUDO... abstrair o que as gems tem de melhor

    buscar flexibilidade múltiplos logins Monday, October 22, 12
  15. REMOVENDO TUDO... abstrair o que as gems tem de melhor

    buscar flexibilidade múltiplos logins trabalhar à nossa realidade Monday, October 22, 12
  16. COMO ASSIM? class User field :username field :password_salt field :password_hash

    end module Authenticator self.authenticate!(resource, username, pass) ... end end Monday, October 22, 12
  17. COMO ASSIM? class User field :username field :password_salt field :password_hash

    end module Authenticator self.authenticate!(resource, username, pass) ... end end class Student < User field :enroll_number, :as => :username ... end Monday, October 22, 12
  18. COMO ASSIM? class User field :username field :password_salt field :password_hash

    end module Authenticator self.authenticate!(resource, username, pass) ... end end class Teacher < User field :cpf, :as => :username ... end class Student < User field :enroll_number, :as => :username ... end Monday, October 22, 12
  19. COMO ASSIM? class User field :username field :password_salt field :password_hash

    end module Authenticator self.authenticate!(resource, username, pass) ... end end class Teacher < User field :cpf, :as => :username ... end class Student < User field :enroll_number, :as => :username ... end Authenticator.authenticate!(Student, 12076, “mypass”) Monday, October 22, 12
  20. COMO ASSIM? class User field :username field :password_salt field :password_hash

    end module Authenticator self.authenticate!(resource, username, pass) ... end end class Teacher < User field :cpf, :as => :username ... end class Student < User field :enroll_number, :as => :username ... end Authenticator.authenticate!(Student, 12076, “mypass”) Authenticator.authenticate!(Teacher, 99988877766, “mypass”) Monday, October 22, 12
  21. ONDE EU QUERO CHEGAR? gems nem sempre salvam vidas talvez

    o código pode ser mais simples se você tiver o controle total Monday, October 22, 12
  22. ONDE EU QUERO CHEGAR? gems nem sempre salvam vidas talvez

    o código pode ser mais simples se você tiver o controle total diminuir dependências da sua app Monday, October 22, 12
  23. ONDE EU QUERO CHEGAR? gems nem sempre salvam vidas talvez

    o código pode ser mais simples se você tiver o controle total diminuir dependências da sua app você pode estar criando um monstro Monday, October 22, 12
  24. USE O QUE REALMENTE AJUDA o que não faz sua

    app ser orientada a gem Monday, October 22, 12
  25. USE O QUE REALMENTE AJUDA o que não faz sua

    app ser orientada a gem o que faz você ter menos código Monday, October 22, 12
  26. USE O QUE REALMENTE AJUDA o que não faz sua

    app ser orientada a gem o que faz você ter menos código o que é mais seguro Monday, October 22, 12
  27. USE O QUE REALMENTE AJUDA o que não faz sua

    app ser orientada a gem o que faz você ter menos código o que é mais seguro mais rápido Monday, October 22, 12
  28. USE O QUE REALMENTE AJUDA o que não faz sua

    app ser orientada a gem o que faz você ter menos código o que é mais seguro mais rápido e não esqueça que isso vai ser legado um dia Monday, October 22, 12
  29. APAGAR CÓDIGO PODE SER LEGAL! \o/ O grande dia de

    apagar o Devise Monday, October 22, 12