Sinatra Github OAuth 问题

Sinatra Github OAuth Problems

我使用 sinatra_auth_github gem to try and put GitHub OAuth into my Sinatra app. I was testing using the sinatra-auth-github-test 示例应用程序有一段时间了,它运行良好。我回去尝试让一些代码在我的应用程序中工作,虽然大部分代码都有效,但来自 GitHub 的重定向没有。

任何人都可以推荐任何帮助吗?

代码如下:

class SimpleApp < Sinatra::Base
  # [...]

  set :github_options, {
    :scope     => 'user',
    :secret    => ENV['GITHUB_CLIENT_SECRET'],
    :client_id => ENV['GITHUB_CLIENT_ID'],
  }
  register Sinatra::Auth::Github

  get '/' do
    erb :index
  end

  get '/login' do
    authenticate!
    "Hello there, #{github_user.login}!"
  end
end

您遇到的问题可能与 shotgun 有关。这 gem 会根据每个请求重新加载您的整个应用程序,因此在 login-related 请求中维护 OAuth-login 会话状态可能存在问题。

运行 您的应用程序改为 rackup(如示例应用程序),我没有遇到任何问题:

bundle exec rackup -p 3000