La entrada sería similar a esta:
require 'omniauth-oauth2' require 'omniauth-google-oauth2' require 'omniauth-facebook'
auth.rb
session
para guardar al información sobre el usuario
cuando se nos de en la ruta de callback
para utilizarla posteriormente:
get '/auth/:name/callback' do session[:auth] = @auth = request.env['omniauth.auth'] session[:name] = @auth['info'].name session[:image] = @auth['info'].image session[:url] = @auth['info'].urls.values[0] session[:email] = @auth['info'].email flash[:notice] = %Q{<div class="chuchu">Autenticado como #{@a...uth['info'].name}.</div>} # Añadir a la base de datos directamente, siempre y cuando no exista if !User.first(:username => session[:email]) u = User.create(:username => session[:email]) u.save end redirect '/' end
get '/auth/failure' do flash[:notice] =· %Q{<div class="error-auth">Error: #{params[:message]}.</div>} redirect '/' end