2017-10-05 146 views
0

我想創建一個Rails 5 API只有應用程序來創建Facebook登錄功能。Rails 5 API只有Devise,OmniAuth,Devise Token Auth回調問題,而Facebook登錄

我使用下面的寶石:
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 
相關問題