【问题标题】:Omniauth Twitter fails with session_expired errorOmniauth Twitter 因 session_expired 错误而失败
【发布时间】:2014-01-08 18:28:51
【问题描述】:

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

在推特点击回调 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,要求我授权该应用程序,当我单击“允许”时,它会将我重定向回来,但我只是一遍又一遍地被发送到同一个失败屏幕。

【问题讨论】:

    标签: twitter sinatra omniauth twitter-oauth


    【解决方案1】:

    在我的情况下,我已经解决了这个问题。我使用 Pow 作为我的 Web 服务器,在我的项目文件夹中有一个名为“tmp”的文件夹。您可以通过添加一个名为“always_restart”的文件来告诉 POW 在每次请求时重新启动服务器。服务器在每个请求上都重新启动的事实意味着会话令牌变得无效。通过删除这个文件,我让它工作了。

    【讨论】:

    • 我被困在一个小项目上好几个星期了,因为我一辈子都想不通为什么它不能在本地工作。就是这样。谢谢!根据请求自动重新启动非常棒,除非它不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    相关资源
    最近更新 更多