8
votes

omniauth oauthexception & oauth :: non autorisé

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


5 commentaires

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 (ou où que vous ayez défini les variables ENV) avant de démarrer le serveur. Vous devez le faire une seule fois.


3 Réponses :


0
votes

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'


3 commentaires

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.



15
votes

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: xxx

dans omniauth.rb

puis dans votre environnement de configuration (configuration / environnements /Development.rb, etc.) Mettez la clé que vous souhaitez utiliser pour cet environnement.

config / environnements / développement.rb: xxx

config /environments/production.rb: xxx


2 commentaires

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?



2
votes

env ["quelque chose '] code>

regarde dans votre environnement vars pour" quelque chose ", il serait donc d'attendre p>

quelque chose =' 12345 ' Code> p>

Vous devez donc le faire comme ça p> xxx pré>

Vérifiez avec p> xxx pré>

et mise à jour Votre config p> xxx pré>

si vous utilisez HEROKU P>

heroku config:add AUTH_FB_KEY='....'


0 commentaires