2013-06-05 10 views
6

मुझे ट्विटर के साथ बुनियादी omniauth प्रमाणीकरण पर 2 दिनों के लिए सड़क अवरुद्ध कर दिया गया है। मैंने सरल ओमनीथ पर रयान बेट्स के रेलवे के साथ पीछा किया, लेकिन जब मैं लॉग इन करने का प्रयास करता हूं तो ओएथ :: अनधिकृत 401 अपवाद को पीछे छोड़ने में असमर्थ रहा है। कृपया मदद करें!रेल में ओमनीउथ-ट्विटर: ओएथ :: अनधिकृत 401

twitter info: 
    website: [http://127.0.0.1:3000] 
    callbarck url: [http://127.0.0.1:3000/auth/twitter/callback] 

//routes.rb

Sentimentalist::Application.routes.draw do 

    resources :dashboard, only: [:index] 
    resources :welcome 

    root :to => 'welcome#index' 

    match '/auth/twitter/callback', to: 'sessions#create' 

    match "/signout" => "sessions#destroy", :as=>:signout 


    match ':controller(/:action(/:id))(.:format)' 
end 

//application.html.erb

  <!DOCTYPE html> 
    <html> 
    <head> 
     <title>Sentimentalist</title> 
     <%= stylesheet_link_tag "application", :media => "all" %> 
     <%= javascript_include_tag "application" %> 
     <%= csrf_meta_tags %> 
     <% yield(:head) %> 
    </head> 
    <body> 
     <div id="container"> 
      <div id="user_nav"> 
        <% if current_user %> 
         Welcome <%= current_user.name %>! 
         <%= link_to "Sign Out", signout_path %> 
        <% else %> 
         <%= link_to "Sign in with Twitter", "/auth/twitter" %> 
        <% end %> 
      </div> 
     </div> 

    <%= yield %> 

    </body> 
    </html> 

// config/initializers/omniauth.rb

: मेरे कोड के नीचे चिपकाया जाता है
Rails.application.config.middleware.use OmniAuth::Builder do 
     provider :twitter, '###', '###' 
    end 

// सत्र_controller.rb

def create 
     auth = request.env["omniauth.auth"] 
     user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) ||User.create_with_omniauth(auth) 
     session[:user_id] = user.id 
     redirect_to root_url, :notice => "Signed in!" 
    end 

    def destroy 
     session[:user_id] = nil 
     redirect_to root_url, :notice => "Signed out!" 
    end 

उत्तर

4

जब आप अपना ऐप कॉलबैक यूआरएल लोकलहोस्ट पर सेट करते हैं तो समस्या होती है।
यूआरएल शॉर्टनर का उपयोग करके अपने ट्विटर एप्लीकेशन के कॉलबैक यूआरएल को सेट करने का प्रयास करें।

आप http://goo.gl/ जैसे यूआरएल शॉर्टनर का उपयोग कर सकते हैं और आपके कॉलबैक यूआरएल को उस फिट के साथ बदल सकते हैं जो आपको फिट करता है।

http://127.0.0.1:3000/auth/twitter/callback => http://goo.gl/QVYCy 
+0

कॉलबैक के लिए दुर्भाग्य से चहचहाना छोटा अस्वीकृत कर देता यूआरएल :( – user2040608

+1

@ user2040608 मुझे ऐसा नहीं लगता है? वैसे भी, http://stackoverflow.com/questions/800827/twitter-oauth-callbackurl-localhost-development – oldergod

+0

काम किया मेरे लिए! धन्यवाद! – CloudRide

संबंधित मुद्दे