¡Vuélvete social o vete a casa! Este debería ser el mantra de cualquier negocio en 2016. El territorio online ya se ha abierto camino en prácticamente todos los negocios y no hay forma de salir del carro digital si no quieres quedarte atrás. Las redes sociales se han convertido en una segunda naturaleza para la mayoría de nosotros y, sin importar cuál sea su mercado objetivo, si no se encuentra con su audiencia en el lugar donde pasan el rato, su negocio corre un gran riesgo de quedarse atrás. Una de las mejores formas de integrar las redes sociales en su negocio es permitir que los usuarios inicien sesión en su empresa a través de canales sociales.
Omniauth es una de esas grandes joyas que le permite integrar fácilmente proveedores de autenticación social, incluidos Facebook, Google, Twitter y GitHub, para su aplicación web Ruby on Rails. Consulte los pasos a continuación para aprender cómo integrar estos proveedores de autenticación en su aplicación.
Supongamos que tiene una aplicación Rails con Devise Gem o cualquier otro sistema de inicio de sesión.
Ahora abre tu Gemfile y haz referencia a la gema omniauth.
1 gema 'omniauth'
A continuación, como de costumbre, ejecute el comando de instalación del paquete para instalar la gema.
Crear un proveedor en las redes sociales (Facebook)
Para agregar un proveedor a Omniauth, deberá registrarse como desarrollador en el sitio del proveedor. Después de registrarse, se le proporcionarán dos cadenas (algo así como un nombre de usuario y una contraseña) que deberá pasar a Omniauth. Sin embargo, si utiliza un proveedor de OpenID, todo lo que necesita es la URL de OpenID.
Si desea utilizar la autenticación de Facebook, visitedevelopers.facebook.com/apps y haga clic en "Crear nueva aplicación".
Agregue sus Proveedores a la Aplicación.
Cree un nuevo archivo debajo de config/initializers llamado omniauth.rb. Puede configurar sus proveedores de autenticación a través de este archivo.
Agregue los siguientes códigos al archivo que creó anteriormente:
Rails.application.config.middleware.use OmniAuth::Builder hacer
proveedor: facebook, YOUR_APP_ID, YOUR_APP_SECRET
fin
Esta es toda la configuración que necesita para que esto funcione. Del resto se encarga Omniauth, como veremos en el siguiente paso.
Abra su archivo app/controllers/sessions_controller.rb y escriba el método de creación, como
definitivamente crear
auth_hash = solicitud.env['omniauth.auth']renderizar: texto => auth_hash.inspect
fin
Creando el modelo de usuario
definitivamente crear
auth_hash = solicitud.env['omniauth.auth']@autorización = Autorización.find_by_provider_and_uid(auth_hash[“proveedor”], auth_hash[“uid”])
si @autorización
render :text => “¡Bienvenido de nuevo #{@authorization.user.name}! Ya te has registrado”.
demás
usuario = Usuario.nuevo :nombre => auth_hash[“user_info”][“nombre”], :email => auth_hash[“user_info”][“correo electrónico”]
usuario.autorizaciones.build :proveedor => auth_hash[“proveedor”], :uid => auth_hash[“uid”]
usuario.guardarrender :text => “¡Hola #{nombre.usuario}! Te has registrado”.
fin
finlist_with_promote=[]
lista_sin_promoción=[]
User.find_by_email(“[email protected]”).listings.approved.each do |u|
si u.listing_promotes.present?
list_with_promote << u.id
list_with_promote << u.listing_promotes.map{|u| p u.promocionar.nombre }
demás
lista_sin_promoción << u.id
fin
pag "*******"
fin
Referencias;