Omniauth Twitter因session_expired错误而失败

时间:2014-01-05 23:41:01

标签: twitter sinatra omniauth twitter-oauth

我已经开始构建一个小应用程序并使用Omniauth和omniauth-twitter宝石。

Everyhting正常运行,直到twitters点击回调网址,然后我收到错误回复并发送错误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 个答案:

答案 0 :(得分:1)

我已经在我的案例中弄明白了。我使用Pow作为我的Web服务器,在我的项目文件夹中有一个名为'tmp'的文件夹。您可以通过添加名为“always_restart”的文件告诉POW在每个请求上重新启动服务器。服务器在每个请求上重新启动的事实意味着会话令牌变得无效。通过删除此文件,我得到了它的工作。