
Screencast #1
Saiu o primeiro ScreenCast do Blog, nele falamos sobre como criar uma autenticação (usando a conta do facebook) com o Devise e o Omniauth em 10 minutos. Talvez este assunto seja trivial para algumas pessoas, mas ainda existem muitas dúvidas e dificuldades na hora de fazer isso. Então, decidimos simplificar o assunto criando um tutorial em vídeo.
Pra acessar o repositório no GitHub com o código completo para consulta, clique aqui!
Lista de comandos
Parte 1 – Criar o App e instalar o devise
-
- Criar o App
1rails new social_register - Incluir as dependências no Gemfile
123gem 'devise'gem 'omniauth'gem 'omniauth-facebook' - Rodar o bundle
1bundle - Gerar o Controller da Home
1rails g controller home - Incluir o caminho nos routes
1root to: "home#index" - Criar o arquivo “app/views/home/index.html.erb”
- Colar o seguinte códido dentro:
1234Hello <%= current_user.email %><% if current_user.image.present? %><%= image_tag(current_user.image, size: "40") %><% end %>
<%= link_to “Sair”, destroy_user_session_path, method: :delete %>
- Criar o App
- Instalar o devise
1rails g devise:install - Criar o User do devise
1rails g devise user - Rodar as migrations
1rake db:migrate - Colocar o before_action no “/app/controllers/application_controller.rb”
1before_action :authenticate_user!
Parte 2
Nota: Devido à atualizações na plataforma developers.facebook.com, houve a necessidade de atualizar essa parte do tutorial para que seu APP local funcione. Para o bom funcionamento do tutorial, a Parte 2 poderá ser alterada no futuro caso aconteçam novas atualizações na plataforma. 🙂
1- Acesse developers.facebook.com e ative sua conta do facebook como developer. Em seguida, no Menu superior direito ‘Meus Aplicativos’ clique em ‘Adicionar um novo aplicativo’, escolha um nome e seu e-mail para criar nossa interação.
2- Na tela seguinte vá em Login do Facebook e clique em ‘Configurar’
3- Na tela seguinte clique em Web e digite http://localhost:3000 no campo URL do site e clique em salvar.
4- Em seguida, clique no menu Login do Facebook -> Configurações e no campo URIs de redirecionamento do OAuth válidos e insira o valor:
1 |
http://localhost:3000/users/auth/facebook/callback |
Clique em ‘Salvar Alterações’.
Parte 3 – Criar o login e o signup social
- Alterar a parte “devise_for :users” no arquivo Routes, para:
1devise_for :users, :controllers => { :omniauth_callbacks => "callbacks" } - Adicionar o omniautable ao “app/models/user.rb”
1:omniauthable - Adicionar os campos necessários para o omniauth no model User
1rails g migration AddColumnsToUsers provider uid name - Rodar as migrations
1rake db:migrate - Incluir a configuração do omniauth no “config/initializers/devise.rb”. OBS: Está diferente do ScreenCast devido à atualização na integração.
1config.omniauth :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], callback_url: "http://localhost:3000/users/auth/facebook/callback" - Vamos gerar o controller de callback
1rails g controller callbacks - Copiar o código pra dentro do “app/controllers/callbacks_controller.rb”
12345678910class CallbacksController < Devise::OmniauthCallbacksController def facebook @user = User.from_omniauth(request.env["omniauth.auth"]) if @user.persisted? sign_in_and_redirect @user, :event => :authenticationelseredirect_to new_user_registration_urlendenddef failureredirect_to root_pathendend - Copiar o código para o “app/models/user.rb”
1234567891011121314class User < ApplicationRecord# Include default devise modules. Others available are:# :confirmable, :lockable, :timeoutable and :omniauthabledevise :database_authenticatable, :registerable,:recoverable, :rememberable, :trackable, :validatable, :omniauthabledef self.from_omniauth(auth)where(provider: auth.provider, uid: auth.uid).first_or_create do |user|user.email = auth.info.emailuser.name = auth.info.nameuser.password = Devise.friendly_token[0,20]user.image = auth.info.imageendendend
Precisa de ajuda?
- Dê uma olhada nos comentários e veja se uma dúvida semelhante à sua já não foi resolvida 🙂
- Pergunte aí em baixo que nós responderemos.
- Curta nossa página no Facebook que a gente bate um papo pra solucionar sua dúvida. Curtir agora!
Referências
- Projeto completo no GitHub, aqui.
- Para criar seu App no Facebook, clique aqui.
- Documentação do Devise, aqui.
- Documentação do OmniAuth, aqui.

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Conclusão
Espero que este Post seja útil e que torne a sua vida como programador mais fácil. Se você está gostando do conteúdo do blog, compartilhe-o com os seus amigos que possam se beneficiar desses conteúdos (ajude esse blog a crescer 🙂 ) e não se esqueça de assinar a Newsletter 🙂.
Muito obrigado pela sua atenção e um grande abraço.
Equipe OneBitCode.
Você é novo por aqui?
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode trás conteúdos de qualidade e em português sobre programação com foco em Ruby on Rails e outras tecnologias como Angular, Ionic, React, desenvolvimento de Chatbots e etc.
Se você deseja aprender mais, de uma forma natural e dentro de uma comunidade ativa, visite nosso Facebook e nosso Twitter, veja os screencasts e talks no dating scene san diego, alguns acontecimentos no the red pill reddit dating hookup nyc la, ouça os https://onebitcode.com/free-gay-dating-sites-uk/ e faça parte de nossa Newsletter.
Além disso, também estamos com alguns e-Books muito interessantes para quem deseja se aprimorar como programador e também como freelancer (os e-Books são gratuitos!):
- WorkFlow Super Full Stack
- Desenvolvendo seus projetos como um profissional
- Guia do Freelancer
- PDF com links fundamentais para quem quer ser um freelancer de sucesso
- Guia One Bit Code de Gems
- Baixe gratuitamente seu e-Book com 60 Gems separadas por categorias
Espero que curta nossos conteúdos e sempre que precisar de ajuda com os tutoriais, fala com a gente!
Seja por Facebook ou e-mail, estamos aqui para você 🙂
Bem-vindo à família OneBitCode \o/