0

を許可した後、フォームをsign_inにリダイレクトします。私はこのチュートリアルhttps://www.youtube.com/watch?v=X6tKAUOMzCs&t=42sに従っていますが、私はどこでもオンラインで見つけることができないというエラーが発生しています。実際にはエラーではありません。Twitterからアプリを承認した後、sign_inフォームにリダイレクトされます。Railsの5工夫とOmniAuth Twitterのセットアップは、私は私の<strong>工夫</strong>の上に<strong>OmniAuth-ツイッター</strong>をインストールしようとしているアプリ

routes.rbを

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :twitter, "ididputmykeyhere", "ididputmykeyhere" 
end 

omniauth.rb

Rails.application.routes.draw do 
    devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" } 

    resources :posts 
    resources :categories 
    root 'posts#index' 
end 

class OmniauthCallbacksController < Devise::OmniauthCallbacksController 
    def twitter 
    # Show me what I get from Twitter 
    raise request.env["omniauth.auth"].to_yaml 

    @user = User.from_omniauth(request.env["omniauth.auth"]) 
    sign_in_and_redirect @user 
    end 
end 

omniauth_callbakcs_controller.rb user.rb

class User < ApplicationRecord 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable, 
     :omniauthable, :omniauth_providers => [:twitter] 

    has_many :posts 
end 

config.omniauth :twitter, ENV["ididputmykeyhere"], ENV["ididputmykeyhere"] 

devise.rb私は、私の見解にuser_twitter_omniauth_authorize_pathリンクを置きます。これは、Twitterの承認ページにリダイレクト

  1. は✅
  2. 私はrequest.env [ "omniauth.auth"]を調達することを期待してい
  3. ✅Twitterからアプリを承認するが、それはローカルホストにリダイレクト:3000 /ユーザー/私は私が何をしないのです、フォーム❌それは私がデータベース・コードに保存する書き込みをされる私のomniauth_callbacks_controllerをスキップのような役割を果たし

に看板が見え sign_in?ありがとうございます!


++++++++++++++++++++++ UPDATE +++++++++++++++++++ +++

私はomniauth_callbakcs_controller.rbにdefの失敗を追加しました。私はそのアプリケーションがそれを実行しているのを見ています。

def failure 

    raise request.env["omniauth.auth"].to_yaml 

    flash[:error] = 'There was a problem signing you in. Please register or try signing in later.' 
    redirect_to root_path 
    end 

enter image description here ので、何らかの理由で、アプリは私のデフのTwitter

+0

こんにちはKevin、私もその記事を調べましたが、もう一度私はこの時点で立ち往生しています。私は**を追加しました:omniauthable、:omniauth_providers => [:twitter] ** user.rb file btw – Designer

+0

こんにちは、あなたはまだユーザーを見つけるか作成する必要があります。その後、あなたの 'twitter'アクションで' sign_in_and_redirect @ user'を呼び出すことができます( 'env [" omniauth.auth "]'から '@ user'を定義してください) –

答えて

0

をスキップしていることがSOOOOOO奇妙ですが、omniauth.rbファイルを削除すると、問題を解決しました。私はomniauth.rbとdevise.rbの両方でAPIキーを定義していました。ファイルです。おそらく、複数のファイルで定義すると、ある種の矛盾が生じます。

関連する問題