2014-01-05 78 views
1

我已經開始構建一個小應用並使用Omniauth和omniauth-twitter gems。Omniauth Twitter會因session_expired錯誤而失敗

Everyhting一直很好,直到twitters點擊回調url,然後我收到了錯誤信息auth/failure?message=session_expired&strategy=twitter

這是到目前爲止我的代碼:

class Admin < Sinatra::Base 
    register Sinatra::Namespace 
    enable :sessions 

    use OmniAuth::Builder do 
    provider :twitter, 'Cient_ID', 'Client_secret' 
    end 

    namespace '/admin' do 
    get do 
     erb :index 
    end 

    get '/login/?' do 
     redirect '/auth/twitter' 
    end 

end 

get '/auth/twitter/callback' do 
    "You are now logged in" 
end 
end 

當我去/admin/login我得到重定向到Twitter網站要求我授權的應用程序,當我點擊「允許」,將其重定向我回去,但我只是送送一直到同一個故障屏幕。

回答

1

我已經想通了我的情況。我使用Pow作爲我的Web服務器,並在我的項目文件夾中有一個名爲'tmp'的文件夾。您可以通過添加名爲'always_restart'的文件來告訴POW在每個請求中重新啓動服務器。服務器在每個請求上重新啓動的事實意味着會話令牌變得無效。通過刪除這個文件我得到它的工作。

+0

請不要忘記接受這些作爲答案! :) –

+0

我一直被困在一個小項目上好幾個星期,因爲我無法弄清楚爲什麼它不能在本地工作。就是這樣。謝謝!根據要求自動重啓很好,除非不重啓。 –

相關問題