如何在多个环境中处理 OmniAuth 回调?

2024-03-21

我有一个应用程序专门使用 Facebook 作为身份验证提供程序,并已正确设置生产模式的回调。为了实现这一点,您需要为 Facebook 应用程序提供一个站点 URL 和一个用于回调的站点域,在我的例子中是http://appname.heroku.com and appname.heroku.com分别。

问题是我的控制器设置为仅允许经过身份验证的会话,因此我无法在开发模式下查看我的应用程序,因为 Facebook 应用程序的域显然尚未设置为 localhost。

如何解决这个问题而不需要在 Facebook 的设置中进行更改?


使用域名创建另一个 Facebook 应用程序localhost:3000发展和创造config.yml in the config目录

development:
  facebook_api_key: 656756786867868
  facebook_api_secret: 4sdffdh6u345436

production:
  facebook_api_key: 45778799
  facebook_api_secret: fghjkbbcbcbcbcb

现在将 load_config.rb 添加到初始值设定项文件夹

# load config
AppConfig = YAML.load_file(Rails.root.join('config', 'config.yml'))

# Override config options by correct environment
env_options = AppConfig.delete(Rails.env)

AppConfig.merge!(env_options) unless env_options.nil?

最后将其添加到omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
   provider :facebook, AppConfig['facebook_api_key'], AppConfig['facebook_api_secret']           
end

它将根据 Rails 环境获取您的密钥。就这些了,希望对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在多个环境中处理 OmniAuth 回调? 的相关文章

随机推荐

  • postgresql 生成无间隙的序列

    我必须 必须为发票创建唯一的 ID 我有一个表 ID 和这个唯一编号的另一列 我使用序列化隔离级别 使用 var seq SELECT invoice serial 1 FROM invoice WHERE type type ORDER
  • 导航器.userAgent

    我正在尝试检测浏览器是否是 Safari 如果是这样 那就做点什么吧 在所有其他浏览器中 执行其他操作 if navigator userAgent toLowerCase indexOf safari 1 if safari execut
  • 感叹号在数据类型中起什么作用?

    我是 Haskell 的新手 今天我阅读了 OpenGL 源代码 发现了这个 data VertexArrayDescriptor a VertexArrayDescriptor NumComponents DataType Stride
  • 使用 jQuery 获取元素的真实宽度

    我正在为 html 文件的 视觉正确性 编写一个验证器 目标是检测太宽的元素 这是我的问题的演示 http jsfiddle net vv68y 2 红色虚线表示文档的最大宽度 本例中为 200px 第一段很好 但第二段太宽了 尽管如此 以
  • 刷新所有 Azure 实例上的数据

    刷新所有 Azure 实例中的数据的最佳方法是什么 我有多个实例 每个实例都运行相同的 Web 角色 角色启动时 数据从 Blob 存储读取到本地存储 网站使用的数据会间歇性地有新的更新 我希望能够以编程方式通知每个实例 以将更新的数据从
  • 如何在Terraform中输出一种类型的所有资源?

    我有一堆aws ecr repositories在我的 Terraform 代码中定义 resource aws ecr repository nginx images name nginx test resource aws ecr re
  • 获取字符串形式的属性名称

    我需要一种方法来传递属性并获取分配给它的名称 有什么建议么 property nonatomic retain MyObject crazyObject NSString str SOME WAY TO GET PROPERTY NAME
  • 设置可选参数默认值的 phpdoc 标准?

    Example This function will determine whether or not one string starts with another string param string haystack p The st
  • 如何在 Objective-C 中内联声明好的旧 C 数组?

    这是我的代码 NSUInteger indexArr 1 2 3 4 NSIndexSet indexSet NSIndexPath indexPathWithIndexes indexArr length 4 有没有办法声明indexAr
  • BEM 块、命名和嵌套

    我正在尝试了解 BEM 命名约定 我被困在这个问题上 我可能误解了一些东西 让我们看看 我有一个侧边栏导航和一个内容导航 我的侧边栏导航看起来像这样 div class sidebar ul class sidebar nav li cla
  • Eclipse 作为 IDE + Mercurial 用于版本控制 + ?错误跟踪 = 好主意? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于一个新的 Java Web 项目 我考虑使用 Eclipse 作为 IDE Mercurial 用于版本控制 某种错误跟踪软件 我听说过错误
  • 如果没有打印语句,循环看不到其他线程更改的值

    在我的代码中 我有一个循环等待其他线程更改某些状态 另一个线程可以工作 但我的循环从未看到更改后的值 它永远等待 然而 当我放一个System out println在循环中声明 它突然起作用了 为什么 以下是我的代码示例 class My
  • 如何迭代json对象的所有子节点?

    我想迭代 json 对象的所有节点 并写出一个简单的键值映射 如下所示 name first John last Doe items name firstitem stock 12 name 2nditem stock 23 company
  • 在 dplyr 中使用 select 函数时保留列标签

    我组合了多个数据集并仅保留特定列 但是 当我使用 dplyr 中的选择函数时 它不会保留原始列标签 在我的情况下为项目文本 导入数据后 我使用以下代码来选择要保留的变量 Wave1Data Clean lt select Wave1Data
  • 在Python中使用networkx绘制二部图[重复]

    这个问题在这里已经有答案了 我有一个二分图的 n1 n2 双邻接矩阵 A 矩阵 A 是 scipy sparse csc 矩阵 我想使用 Networkx 中的 A 绘制二分图 假设节点根据其称为 node class 的类标签进行着色 我
  • JetBrains Rider 在 Mac 上启用 ASP.NET MVC 迁移

    我在 macOS Mojave 上安装了 JetBrains Rider 2018 3 我创建了一个 ASP NET MVC 项目 安装了实体框架 6 2 我将连接字符串添加到 web config 中 但是 我不知道如何配置app con
  • Android 中的 USB 加密狗识别 - Beaglebone

    Issue Beaglebone 中的 Android JellyBean4 1 2 无法识别某些华为 USB Dongle 详细 我正在使用在 Android JellyBean4 1 2 上运行的 BeagleBone Huawei E
  • Android NDK调试:设备无法打开

    我现在正在尝试调试我的本机库一段时间 但它不起作用 本机代码可以工作并编译 但出于优化目的 我确实需要调试本机代码 我已经阅读并遵循了许多教程 例如教程1 http mhandroid wordpress com 2011 01 23 us
  • 从 JSON 文件读取数据

    假设我有一个 JSON 文件位于http www randomurl com jobs json http www randomurl com jobs json 它看起来像这样 jobs task turn burgers who Ann
  • 如何在多个环境中处理 OmniAuth 回调?

    我有一个应用程序专门使用 Facebook 作为身份验证提供程序 并已正确设置生产模式的回调 为了实现这一点 您需要为 Facebook 应用程序提供一个站点 URL 和一个用于回调的站点域 在我的例子中是http appname hero