我在Twitter和Instagram上使用OmniAuth进行身份验证。 Twitter运作良好。
当我使用/ auth / instagram请求启动身份验证过程时,OmniAuth不会在授权标头中包含client_id。
我已将OmniAuth初始化为:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, ENV.fetch('TWITTER_CONSUMER_KEY'), ENV.fetch('TWITTER_CONSUMER_SECRET')
provider :instagram, ENV.fetch('INSTAGRAM_CLIENT_ID'), ENV.fetch('INSTAGRAM_CLIENT_SECRET')
end
当我发送/ auth / instagram请求时,它会返回:
{"code": 400, "error_type": "OAuthException",
"error_message": "You must include a valid client_id, response_type, and redirect_uri parameters"}
并显示没有我的client_id的请求uri:
https://www.instagram.com/oauth/authorize?client_id=&redirect_uri=http://demo.herokuapp.com/auth/instagram/callback&response_type=code&scope=basic&state=952ced9482ccf34faf3e09cffd40f59548f3c5a539499723
任何帮助都将不胜感激。
答案 0 :(得分:0)
您的z-index
变量可能未在加载初始化程序后及时加载。尝试用实际的字符串替换它们,看看是否有效。不要把它交给公共回购......相信我,如果你这样做就很烦人。
我是dotenv的粉丝。我使用ENV
版本在初始化程序中加载ENV变量。
rails-now
参考如:gem 'dotenv-rails', :require => 'dotenv/rails-now'