2017-10-05 25 views
0

Facebookでサインイン機能を作成するためのRails 5 API専用アプリケーションを作成しようとしています。Rails 5 APIのみDevise、OmniAuth、Devise Tokenの認証コールバックの問題

私は、次の宝石を使用しています:
devise_token_auth
omniauth_facebook

私が続いているドキュメントをdevise_token_authでアプリを作成します。それらによって提供されるdemo appも同様のエラーを有する。

ログインに成功しました。ユーザーのトークンを受信すると、その番号はsign_in_countになりますが、そのコールバックは空白のページでhttp://localhost:8000/auth/facebook/callback#_=_になります。

は、以下の要求のコンソールログです:

Started GET "/omniauth/facebook?resource_class=User" for 127.0.0.1 at <timestamp> 
I, [2017-10-05T18:10:34.005009 #21485] INFO -- omniauth: (facebook) Request phase initiated. 
Started GET "/omniauth/facebook/callback?code=<code>" for 127.0.0.1 at <timestamp> 
I, [2017-10-05T18:10:34.402585 #21485] INFO -- omniauth: (facebook) Callback phase initiated. 
Processing by DeviseTokenAuth::OmniauthCallbacksController#redirect_callbacks as HTML 
    Parameters: {"code"=>"<code>", "state"=>"<state>", "provider"=>"facebook"} 
Redirected to http://localhost:8000/auth/facebook/callback 
Completed 302 Found in 1ms (ActiveRecord: 0.0ms) 


Started GET "/auth/facebook/callback" for 127.0.0.1 at <timestamp> 
Processing by DeviseTokenAuth::OmniauthCallbacksController#omniauth_success as HTML 
    Parameters: {"provider"=>"facebook"} 
    User Load (0.4ms) SELECT <SQL QUERY> 
    (0.2ms) begin transaction 
    SQL (3.8ms) UPDATE <SQL QUERY> 
    (388.3ms) commit transaction 
    (0.1ms) begin transaction 
    (0.1ms) commit transaction 
Completed 200 OK in 566ms (Views: 0.2ms | ActiveRecord: 394.6ms) 

私もomniauth_callbacks_controller.rbを追加したが、それは効果がありません。

コード:https://github.com/tannakartikey/rails_api/

答えて

1

あなたは非標準のコントローラを指定するためのルートでオプションを渡す必要がありますか、それは宝石が提供するデフォルトのコントローラへのルートが生成されますちょうどバニラ工夫と同じように:

Rails.application.routes.draw do 
    mount_devise_token_auth_for 'User', at: 'auth', controllers: { 
    omniauth_callbacks: 'users/omniauth_callbacks' 
    } 

    mount_devise_token_auth_for 'Admin', at: 'admin_auth', controllers: { 
    omniauth_callbacks: 'admins/omniauth_callbacks' 
    } 

    as :admin do 
    # Define routes for Admin within this block. 
    end 

    #scope module: 'api' do 
    #namespace :v1 do 
     #resources :users, only: [:show, :index] 
    #end 
    #end 
end 
関連する問題