gpt4 book ai didi

ruby-on-rails - Rails - Omniauth-facebook App_id 需要错误

转载 作者:行者123 更新时间:2023-12-04 17:09:04 26 4
gpt4 key购买 nike

我有兴趣学习使用 rails 进行 omniauth 身份验证,因此我查看了不同的指南,其中还包含 Railscast #360。

当我使用developers.facebook.com 创建我自己的应用程序时,它会为我创建一个App_id 和secret。我将应用程序设置为在线并创建了一个基本的 Rails 应用程序,该应用程序仅使用 Ryan Bates 指南中的步骤。

这是我的 omniauth.rb 文件,它生成了我收到的错误,

 OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['875829959136178'], ENV['<app_secret>']
end

我试过用
provider :facebook, ENV['FACEBOOK_875829959136178'], ENV['FACEBOOK_<app_secret>']

还。

当我打电话时 http://localhost:3000/auth/facebook ,我收到一个错误,指出“需要参数 app_id”。

我怎么能通过这个错误,

最佳答案

看来您误解了 ENV 是什么。 ENV[xxx]是一个 ruby​​ 方法,它检索环境变量的值 xxx .所以ENV['875829959136178']在您的代码片段中尝试检索环境变量的值 875829959136178 .很有可能是你的app_id没有设置环境变量875829959136178 ,因此 ENV['875829959136178']返回零。 provider是一种采用 app_id 和 app_secret 的方法,但是由于您将 nil 作为 app_id 提供,因此它声称即使需要 app_id 也未提供。

假设您的 app_id 是 875829959136178而你的 app_secret 是 APP_SECRET .使您的应用程序正常工作的最简单方法是将它们作为字符串提供。

provider :facebook, "875829959136178", "APP_SECRET"

但是,您应该注意,从安全角度来看,将您的应用程序 ID 和密码作为纯文本放在源代码中是不可取的。你应该通过阅读诸如 this 之类的文章来学习如何设置环境变量。 ,或使用像 dotenv 这样的 gem .

关于ruby-on-rails - Rails - Omniauth-facebook App_id 需要错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com