Ruby Sinatra Github OAuth问题
我正在使用gem尝试将githuboauth放入我的Sinatra应用程序中。我使用示例应用程序进行了一段时间的测试,效果良好。我回去尝试让其中一些代码在我的应用程序中运行,尽管大部分代码都运行正常,但GitHub的重定向却没有 有人能推荐一些有帮助的吗 代码如下:Ruby Sinatra Github OAuth问题,ruby,github,oauth,sinatra,Ruby,Github,Oauth,Sinatra,我正在使用gem尝试将githuboauth放入我的Sinatra应用程序中。我使用示例应用程序进行了一段时间的测试,效果良好。我回去尝试让其中一些代码在我的应用程序中运行,尽管大部分代码都运行正常,但GitHub的重定向却没有 有人能推荐一些有帮助的吗 代码如下: class SimpleApp < Sinatra::Base # [...] set :github_options, { :scope => 'user', :secret =
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
类SimpleApp您遇到的问题可能与此相关。这个gem会在每个请求上重新加载整个应用程序,因此在与登录相关的请求中维护OAuth登录会话状态可能会出现问题 使用
rackup
运行应用程序(如示例应用程序),我没有遇到任何问题:
bundle exec rackup -p 3000
您所遇到的问题可能与以下方面有关。这个gem会在每个请求上重新加载整个应用程序,因此在与登录相关的请求中维护OAuth登录会话状态可能会出现问题 使用
rackup
运行应用程序(如示例应用程序),我没有遇到任何问题:
bundle exec rackup -p 3000
嗨,我试过了,结果也一样。是因为我调用
/login
的方式是从index.erb
中的href
调用的吗?是因为Github应用程序中的重定向URL设置为/
@wjordan@zander为了提供一个我或其他人可以复制您的问题,请添加您正在运行的Sinatra源代码的更完整内容,以及您在开发中运行服务器所使用的确切命令。我很好奇如何提供GITHUB\uuu
环境变量,以及您的测试应用程序与此应用程序之间是否一致。从上面的代码中可以看出,我使用的是来自GITHUB的客户端ID和客户端机密,上面列出的几乎是我所有的,我只是省略了index.erb,因为这只是一个链接到/login
的href。就服务器而言,我正在运行bundle exec shotgun-p3000
,重定向链接就是http://0.0.0.0:3000
,如果我尝试将其设置为http://0.0.0.0:3000/login
,一个错误显示重定向URI不正确。它通常会发送到Github,但响应链接不会将用户发送回Sinatra应用程序@wjordan。代码在app.rb
文件中的一个类中,config.ru链接到它,但在一个示例中,它在config.ru@wjordan中工作。您是否尝试在Sinatra应用程序中调用enable:sessions
,我试着这么做,结果也一样。是因为我调用/login
的方式是从index.erb
中的href
调用的吗?是因为Github应用程序中的重定向URL设置为/
@wjordan@zander为了提供一个我或其他人可以复制您的问题,请添加您正在运行的Sinatra源代码的更完整内容,以及您在开发中运行服务器所使用的确切命令。我很好奇如何提供GITHUB\uuu
环境变量,以及您的测试应用程序与此应用程序之间是否一致。从上面的代码中可以看出,我使用的是来自GITHUB的客户端ID和客户端机密,上面列出的几乎是我所有的,我只是省略了index.erb,因为这只是一个链接到/login
的href。就服务器而言,我正在运行bundle exec shotgun-p3000
,重定向链接就是http://0.0.0.0:3000
,如果我尝试将其设置为http://0.0.0.0:3000/login
,一个错误显示重定向URI不正确。它通常会发送到Github,但响应链接不会将用户发送回Sinatra应用程序@wjordan代码在app.rb
文件中的一个类中,config.ru链接到它,但在一个示例中,它在config.ru@wjordan中工作,您是否尝试在Sinatra应用程序中调用enable:sessions
?