你遇到的两个问题
- 仅当您的数据存储在 shell 环境中时才使用 ENV[] - 执行此操作的“更安全”的方法是将信息存储在 secret.yml
- 您的回调 URL 需要与 Omniauth 的预期相匹配——它应该是http://localhost.mapmyapi.com:12345/auth/mapmyfitness/callback,如下所述:https ://github.com/intridea/omniauth#integrating- omniauth 进入您的应用程序
使用机密的omniauth 初始化程序示例
Rails.application.config.middleware.use OmniAuth::Builder do
provider :mapmyfitness, Rails.application.secrets.mapmyfitness_provider_key, Rails.application.secrets.mapmyfitness_provider_secret
end
然后你的 secrets.yml 看起来像:
development:
mapmyfitness_provider_key: wn3ghaaqgbpnztsupsyfvswd3gtprvm9
mapmyfitness_provider_secret: fRMsDbrNQJBgFUBkYReuqKffFKWTzZWVUKz9jCSTeVJ
显然,您将拥有一条不同的生产线。还请记住,既然您的密钥已经存在于世界各地,您可能会考虑请求一组新的凭据 :)
同样重要的是要记住不要将 config/secrets.yml 文件检查到版本控制中 - 而是将其与部署一起复制。
可能会尝试使用 lvh.me 而不是 mapmyfitness 的 localhost passthrough。
将您在 mapmyfitness 注册的回调 URL 更改为
http://lvh.me:3000/auth/mapmyfitness/callback
然后在您的浏览器中 - 访问http://lvh.me:3000
显然,您需要确保您使用的任何端口都与您的 rails 服务器运行的端口相同。