[Rails] Vocês colocam regra de autenticação no ApplicationController ou em cada controller?

Fala pessoal. Uma pergunta. Qual a preferência de vocês para colocar a regra de autenticação?

  • Colocar o before_action authenticate! em cada controller q precisa de uma autenticação? Na minha visão isso funciona bem quando a aplicação tem menos páginas autenticadas do que páginas públicas.

  • Coloca a regra de autenticação no ApplicationController e da um skip nas que não precisam de autenticação. Eu acho que essa funciona bem quando a maioria das suas paginas são autenticadas.

Ou até vejo algumas soluções como um BaseController customizado que se chama AuthenticatedController que teria a regra de autenticação e vc usaria ele como base nos que precisam de autenticação ao invés de usar o ApplicationController direto.

queria ver a preferência da galera

1 curtida

vendo alguns padrões na internet.

O GitLab segue a forma de autenticar no ApplicationController e fazer o skip onde não precisa. app/controllers/application_controller.rb · master · GitLab.org / GitLab · GitLab

1 curtida

Salve Cadu, na maioria das apps que atuo a maior parte das rotas tem que ser autenticadas, então acabo por optar por criar um ApplicationBaseController que tem o before_action authenticate! e todos os controller extendem do mesmo.

e nas rotas que não preciso adiciono o skip, acho pratico pois tem que explicitamente definir as rotas que não são autenticadas.

1 curtida

boa!

Valeu demais @cesar.oliveira! Acho que essa é a melhor forma mesmo pra aplicações com a maior parte autenticada msm.

:beers:

1 curtida