我有 github 使用 gem omniauth-github
和一个文件config/initializers/omniauth.rb 包含
Rails.application.config.middleware.use OmniAuth::Builder do
provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET']
end
但是,当我在浏览器上输入 http://localhost:3000/auth/github/callback 时,我也会得到 OmniAuth::Strategies::OAuth2::CallbackError,所以这应该不是问题。
我的config/environment.rb 看起来像
# Load the rails application
require File.expand_path('../application', __FILE__)
# Load the app's custom environment variables here, so that they are loaded before environments/*.rb
app_environment_variables = File.join(Rails.root, 'config', 'app_environment_variables.rb')
load(app_environment_variables) if File.exists?(app_environment_variables)
...
我的config/app/environment_variables.rb 看起来像
# OAuth Keys and Secrets
if Rails.env.production?
ENV['GITHUB_KEY'] = 'd1234a3a123a1a3a123c'
ENV['GITHUB_SECRET'] = '1234azer123azer1231209jeunsghezkndaz1234'
else
ENV['GITHUB_KEY'] = 'qsflkjkj685bg554456b'
ENV['GITHUB_SECRET'] = 'qslkfj7757kqfmlsdh675hlfsd587kjfdh687jsd'
end
有关详细信息,请参阅Is it possible to set ENV variables for rails development environment in my code?。
我在 github 上注册了 2 个应用程序。一个 app_name-dev 带有键 qsflk...、url http://localhost:3000 和回调 url http://localhost:3000/auth/github/callback 和一个 app_name 带有键 d1234a...。
检查您是否正确执行了该操作。也许尝试将localhost 更改为127.0.0.1。