4

サイトに Facebook 認証を追加しようとしています。これまでのところ、次のように追加しました。

Gemfile

gem 'omniauth-facebook', '1.4.0'

config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'XXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXX', {:provider_ignores_state => true}
end

config/routes.rb

match '/auth/:provider/callback', :to => 'sessions#create', as: 'callback'

アプリ/コントローラー/sessions_controller.rb

class SessionsController < ApplicationController
  def create
    render :text => request.env['omniauth.auth'].inspect
  end
end

私の問題は、初期化が 2 回実行されているように見えることです。Rails サーバーのログには次のように表示されます。

(facebook) Callback phase initiated.
(facebook) Callback phase initiated.
(facebook) Authentication failure! invalid_credentials: OAuth2::Error, : 
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}
(facebook) Authentication failure! invalid_credentials: OAuth2::Error, : 
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100}}

走ると2回rake middleware見えます。OmniAuth::Builderどんな提案でも大歓迎です。

4

1 に答える 1