2

devise と omniauth を使用する Rails 4 アプリで LinkedIn の認証を構成する方法を見つけようとしています。私が持っている: gem ファイルに gem 'omniauth-linkedin-oauth2' があります。

アプリケーションを LinkedIn に登録し、アプリにシークレットとキーを挿入しました。LinkedIn 開発者フォーラムは、プロセスが機能していることを確認しましたが、登録されたリダイレクト パスがコールバックにあるものと一致しないと言っています。

次のコードを含む omniauth_callbacks コントローラーがあります。

def linkedin
    @user = User.find_for_linkedin_oauth(request.env["omniauth.auth"])
      if @user.persisted?
        redirect_to root_path, :event => :authentication
        # sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
        #  set_flash_message(:notice, :success, :kind => "LinkedIn") if is_navigational_format?
        else
          session["devise.linkedin_data"] = request.env["omniauth.auth"]
          redirect_to root_path
        end
      end

root_path にリダイレクトしています。

root_path は、routes.rb ファイルで次のように定義されています: home#home.

ビュー フォルダー内に、home.html.erb というファイルを含む home というフォルダーがあります。

LinkedIn にリダイレクト URL を www.xxxxxxx.com/home として登録し、次のことも試しました: www.xxxxxxx.com、www.xxxxxxx.com/views/home/home、www.xxxxxxx.com/home/家。これらのパスはどれも機能しません。

私の root_path と一致するものとして LinkedIn によって認識されることができるリダイレクト パスを定義する方法を理解するために誰かを助けてください。

事前にどうもありがとうございました。

4

1 に答える 1

1

実行rake routesして、どの URI パターンが最終的に になるかを確認しcallbackます。

ほとんどの場合、次のようなパターンが見つかります。

/users/auth/:action/callback(.:format)

これは、開発中のコールバック URL が次のようになることを意味します。

http://localhost:3000/users/auth/linkedin/callback

本番環境では、コールバック URL は次のようになります。

www.xxxxxxx.com/users/auth/linkedin/callback
于 2014-06-24T12:07:07.563 に答える