J'ai installé Omniauth 1.0. Aussi, j'ai Oauth-0.4.5, OAuth2-0.5.1, Omniauth-Facebook-1.0.0, Omniauth-Twitter-0.0.6.
omniauth.rb Rails.application.config.middleware.use OmniAuth::Builder do provider :developer unless Rails.env.production? provider :facebook, ENV['167257285348131'], ENV['c8c722f697scb2afcf1600286c6212a9'], :scope => 'email,offline_access,read_stream', :display => 'popup' provider :twitter, ENV['fma2L22ObJCW52QrL7uew'], ENV['4aZfhCAOdiS7ap8pHJ7I1OZslFwVWWLiAMVpYUI'] end session_controller.rb class SessionsController < ApplicationController require 'omniauth-facebook' require 'omniauth-twitter' require 'omniauth' def create @user = User.find_or_create_from_auth_hash(auth_hash) self.current_user = @user redirect_to '/' end def auth_hash request.env['omniauth.auth'] end end
3 Réponses :
Il y a eu des changements de rupture de omniauth 1.0 - https://github.com/intridea/omniaTuth
Omniauth 3.0 a plusieurs modifications de rupture de la version 0.x. Vous pouvez Définissez la dépendance à ~> 0.3.2 si vous ne souhaitez pas en faire plus Mise à niveau difficile. Voir le wiki pour plus d'informations. P> blockQuote>
J'essaierais de revenir à Omniauth à 0.3.2: p>
xxx pré> ou si vous utilisez Bundler, dans votre gemfile: P>
gem omniauth, '~> 0.3.2'
J'ai retourné à 0.3.2. Surprenant j'ai les mêmes problèmes.
Ah désolé d'entendre ça. J'ai eu un problème similaire au dos et revenant à 0.3.2 la résolu pour moi. Je vérifierais les journaux d'histoire sur les autres gemmes pertinentes et assurez-vous que tout semble doux?
Merci, mais j'ai trouvé la raison à omniauth.rb. Sans env [] ça marche.
Alex D. est correct que l'env [] le casse. Pour créer omniauth.rb afin qu'il utilise différentes clés dans différents environnements, il suffit de mettre: dans omniauth.rb p> puis dans votre environnement de configuration (configuration / environnements /Development.rb, etc.) Mettez la clé que vous souhaitez utiliser pour cet environnement. p> config / environnements / développement.rb: p> config /environments/production.rb: p>
Je suppose que vous ajoutez ces fichiers à votre fichier gitiignore, sinon il y a beaucoup de clés disponibles pour quiconque à afficher dans votre repo?
@Jeff Steil: Est-ce une meilleure façon de stocker la clé et l'API_Secret ou l'approche des variables d'environnement? Je sais que c'est un sujet discutable, mais comme je suis actuellement le seul développeur, lequel est le meilleur moyen?
regarde dans votre environnement vars pour" quelque chose ", il serait donc d'attendre p> Vous devez donc le faire comme ça p> Vérifiez avec p> et mise à jour Votre config p> si vous utilisez HEROKU P> env ["quelque chose '] code>
quelque chose =' 12345 ' Code> p>
heroku config:add AUTH_FB_KEY='....'
Avez-vous résolu l'erreur Facebook? Si c'est le cas, puis-je obtenir le travail? J'ai le même message d'erreur. Il peut être résolu si j'ai ajouté manuellement le client_id pour interroger les paramètres de chaîne
@Vina env [] le casse. Essayez d'utiliser "" seulement. Pour ex .: Fournisseur: Facebook, '167257285348131', 'C8C722F697SCB2AFCF1600286C6212A9'
Merci, ça marche! Il semble que j'ai aussi besoin de redémarrer la barrick. :RÉ
J'avais exactement le même problème! Savez-vous pourquoi env [] enfreint cela? Dans mon cas, cela fonctionne bien avec Facebook mais pas avec Twitter.
Essayez de
Source ~ / .Profile Code> (ou où que vous ayez défini les variables ENV) avant de démarrer le serveur. Vous devez le faire une seule fois.