Advertisement
  1. Code
  2. Ruby on Rails

Autenticação no Rails Usando Clearance

Difficulty:BeginnerLength:ShortLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Clearance é um sistema simples de autenticação com email e senha, criado pela Thoughbot. Tem valores padrão bem opinativos, mas é projetado para fácil sobrescrita. O sistema é ativamente mantido e podemos seguir no GitHub.

Nesse tutorial, veremos como integrá-lo à uma aplicação Rails. Usaremos uma aplicação miniatura. Comecemos!

Começando

Começaremos gerando nossa aplicação Rails. Para esse tutorial, nomearemo-na de tutsplus-clearance.

É assim que se faz.

Precisamos do Bootstrap para fazer a aplicação ficar bonita. Adicionemos sua gem ao Gemfile.

Instalemos a gem executando bundle install.

Agora, modifiquemos appalication.scss para ficar assim:

Configuração de Clearance

Abramos o Gemfile para adicionar a gem de Clearance.

Agora, instalemos a gem.

bundle install

Agora, executemos o gerador para instalar clearance.

rails generate clearance:install

Isso gerará alguns retornos na linha de comando, parecido com:

Ao executar o comando, alguns arquivos serão gerados na aplicação. Um deles é o clearance.rb, que encontramos na pasta config/initializers. Um modelo User também é gerado e também uma migração aprecida com isso:

De acordo com o retorno, a primeira coisa a editar é a configuração do ambiente. Para tanto, naveguemos até config/environments/development.rb e adicionemos a linha abaixo, logo acima do delimitador end.

Depois, editemos config/initializers/clearance.rb, mudando o email do remetente padrão para o que preferir. Isso é o que vemos ao abrir o arquivo.

Podemos sobrescrever a configuração padrão ao colar o código abaixo e configurador de acordo com os requerimentos.

Executemos o comando para migrar a base de dados.

rake db: migrate

Abramos PagesController e adicionemos uma ação index.

Agora, criemos uma visão para a ação index.

Adicionemos o trecho abaixo:

Editemos as rotas para:

Criemos a parcial _navigation.html.erb dentro da pasta layouts. Ela lidará com tudo relacionado a navegação na aplicação

Colemos o trecho abaixo e salvemos.

Acesso Restrito

Com Clearance, podemos restringir acesso a páginas específicas na aplicação. Vejamos como se faz.

Criemos a visão app/views/pages/new.html.erb. Colemos o código abaixo:

Agora, precisamos adicionar essa linha a config/routes.rb.

Por fim, façamos PagesController igual ao que temos abaixo:

No código acima, garantimos que o utilitário de Clearance, require_login, restringirá acesso à ação new. Para ver funcionando, iniciemos o servidor rails executando rails server na linha de comando. Acessemos http://localhost:3000/pages/new e ela deve redirecionar à página de login.

Clearane também provê restrições de rotas que podem ser usadas para controlar acesso.

No código acima, uma rota diferente foi criada para usuários autenticados.

Sobrescrevendo Padrões de Clearance

Muitas coisas acontecem por trás dos panos ao usar Clearance. Coisas que não vemos. Haverá uma hora que precisaremo customizar as coisas, dependendo da especificação da aplicação. Clearance permite-nos sobrescrever a configuração padrão.

Para sobrescrever (ou gerar) as rotas de Clearance, executemos o comando a seguir:

rails generate clearance:routes

O arquivo de rotas deve estar mais ou menos assim:

O comando também configurará config.routes para falso em config/initializers/clearance.rb. Isso significa que o arquivo customizado recém criado será usado.

Para gerar as visões para modificações, executemos:

rails generate clearance:views

Alguns arquivos que serão gerados incluem:

Veremos um pergunta na linha de comando pedindo para sobrescrever app/views/layouts/application.html.erb. Escolhamos uma nossa opção.

Layouts

Por padrão, Clearance usa o layout padrão da aplicação. Se quisermos alterar isso, simplesmente especifiquemos um layout em seu inicializador.

Métodos Utilitarios

Clearance provê-nos métodos utilitários que podem ser usados em controllers, views e helpers. Incluindo signed_in?, signed_out? e current_user. Por exemplo:

Conclusão

Clearance tem muito a oferecer quando se trata de autenticação, então testemo-no em algum projeto. Podemos aparender mais na página do GitHub.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.