ruby on rails - developer - OAuth:: 401 no autorizado no autorizado para omniauth-twitter en los carriles
twitter developer login (2)
Cuando hago clic en [http://127.0.0.1:3000/auth/twitter], obtengo OAuth :: 401 Error no autorizado en raíles. Estoy siguiendo el video de Railscast # 241 para la autenticación de Twitter con mi aplicación de rieles. He buscado mucho en Google pero no he podido encontrar la respuesta.
Info regarding app on twitter:
Callback URL: [http://127.0.0.1:3000/auth/twitter/callback]
Website: [http://127.0.0.1:3000]
### omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
# provider :developer unless Rails.env.production?
provider :twitter, ENV[''75UOAIDmKrRXvXKBhNvKA''], ENV[''GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A'']
end
### routes.rb
Chilli::Application.routes.draw do
resources :posts
root :to => ''posts#index''
#match ''/auth/:twitter/callback'' => ''sessions#create'', :as => :auth_callback
match ''auth/twitter/callback'', to: ''sessions#create''
end
### application.html.erb
<div id="user_nav">
<%= link_to "Sign in with Twitter", "/auth/twitter"%>
</div>
### sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.from_omniauth(env[''omniauth.auth''])
session[:user_id] = user.id
redirect_to root_url, notice: "Signed in."
end
end
### user.rb
class User < ActiveRecord::Base
attr_accessible :name, :provider, :uid
def self.from_omniauth(auth)
where(auth.slice("provider", "uid")).first || create_from_omniauth(auth)
end
def self.create_from_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["info"]["nickname"]
end
end
end
En omniauth.rb
qué es
ENV[''75UOAIDmKrRXvXKBhNvKA''], ENV[''GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A'']
?
Si 75UOAIDmKrRXvXKBhNvKA
y GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A
son su APP_ID
y APP_SECRET
, debe escribirse como sigue:
provider :twitter, ''75UOAIDmKrRXvXKBhNvKA'', ''GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A''
Tuve el mismo problema, lo que solucionó mi problema fue:
Cambiando:
ENV[''75UOAIDmKrRXvXKBhNvKA''],ENV[''GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A'']
a:
''75UOAIDmKrRXvXKBhNvKA'', ''GrIaBI0tQy2TtjOtaFL9VxT6s9qq1sV7h9yRaZW4A''
y colocando un ''/'' antes de ''auth'' aquí:
match ''/auth/:provider/callback'', to: ''sessions#create'', via: ''get''
match ''/auth/failure'', to: redirect(''/''), via: ''get''