如何使用 Rails 跨多个域共享用户会话?

2024-01-06

是否有人知道任何宝石、教程或解决方案使用户能够在一个域中登录网站并在同一会话中自动授予对其他合作伙伴域的访问权限?

我有两个正在运行的 Rails 应用程序,我们称它们为 App-A 和 App-B。 App-A 有一个与之关联的数据库,支持在 App-A.com 上的注册和登录。我现在想向所有拥有 App-A.com 帐户的用户授予对 App-B.com 的访问权限,而无需让他们单独重新注册或手动登录 App-B.com。

预先感谢您的任何帮助! - 标记


您可以在两个应用程序中设置相同的 session_key。在appA环境.rb中更改session_key,如下所示

Rails::Initializer.run do |config|
   ...  
 config.action_controller.session = {
   :session_key => '_portal_session',
   :secret      => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
  }
  ...
end

在 AppB 中执行相同操作。 (记住使用相同的秘密)

现在您已共享会话。假设您使用restfull_authentication,它设置了一个名为的会话变量user_id。当您在 appA 中进行身份验证时,它会在会话中设置 user_id。现在,在 appB 中,您只需验证会话中是否存在 user_id 即可。

这是总体架构,您可以使用这个想法进行更详细的阐述。

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

如何使用 Rails 跨多个域共享用户会话? 的相关文章

  • Ruby on Rails 最酷的功能是什么,为什么选择它? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我问这个问题之前 我浏览了 SO 上 Ruby on Rails 的搜索结果 找不到太多 但以下 在此页面上找到 https stackove
  • 为什么 Rails 5 将“索引”更改为“外键”?

    如果你在 Rails 4 中有这个 t references event index true 现在你可以使用foreign key代替index在 Rails 5 中 我不太明白为什么他们决定这样做 因为功能保持不变 您添加的是索引 而不
  • ruby on Rails,会话过期通知

    我正在使用 ruby 1 9 3 和 Rails 3 2 我的实际会话处理如下所示 会话助手 def sign in user cookies remember token value user remember token expires
  • 是否可以让 Capistrano 通过反向 SSH 隧道进行结帐?

    我正在开发一个驻留在公共主机上的应用程序 但我必须将其源代码保存在公司防火墙后面的 Git 存储库中 我越来越very厌倦了通过缓慢的部署scp 复制整个存储库并在每次部署时通过 SSH 传送 并且希望远程主机只需执行git pull更新
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • Eventmachine start_tcp_server 无接受器 - 端口正在使用或需要 root 权限(运行时错误)

    我已经 3 天无法运行本地服务器了 重新启动我的计算机没有帮助 有几次 在反复尝试大约 40 50 次之后 它随机地起作用了 我不明白为什么 我尝试过一次不同的端口并且有效 但从那以后 没有端口有效 每次我尝试运行我的 Rails 服务器时
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • 如何创建与 ActiveResource 对象的 ActiveRecord 关系?

    假设我正在为一家已经拥有 People 应用程序的出版公司编写一个图书馆应用程序 所以在我的图书馆应用程序中我有 class Person lt ActiveResource Base self site http api people m
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • 在 Rails 中禁用连接池以使用 PgBouncer

    我们有一个 Ruby on Rails 4 2 8 项目 可以访问大型 PostgreSQL 数据库 我们将使用 PgBouncer 添加一个新的连接池服务器 由于 PgBouncer 将处理数据库连接池 我们是否需要关闭 Rails 自动
  • 如何从rails控制台将数据添加到数据库

    我有一个User model gt gt u User new gt
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • Rails 3.1 和图像资源

    我已将管理主题的所有图像放入名为 admin 的文件夹内的资产文件夹中 然后我像平常一样链接到它 Ruby image tag admin file jpg CSS logo background url assets images adm
  • 如何终止会话或会话 ID (ASP.NET/C#)

    当用户单击注销按钮时 如何销毁会话 会话 名称 我正在 MSDN 上查看 ASP NET API Reference 它似乎没有太多信息 看来还是比较有限的 但我找不到 ASP NET 类等的任何其他页面 我努力了 Session Aban
  • 带回形针、导轨的水印图像 4

    我一直在尝试按照中列出的答案向我的图像添加水印带有回形针的水印 https stackoverflow com questions 13517757 watermark with paperclip 水印 rb module Papercl
  • puma systemd 脚本无法启动 puma

    我已经从多个来源复制并粘贴了以下美洲狮系统启动脚本的片段 但它不起作用 系统是Debian 9 6 用户rails红宝石通过安装rvm 用户rails可以启动命令RAILS ENV production bundle exec puma C
  • 用于验证目的的动态查找方法

    我正在使用 Ruby on Rails 3 0 7 我想在运行时查找一些记录以进行验证 但为该查找方法传递 设置一个值 也就是说 在我的班级中 我有以下内容 class Group lt lt ActiveRecord Base valid
  • rspec 中的模拟方法链

    有一系列方法可以获得user目的 我试图模拟以下内容以返回user in my Factory Girl current user AuthorizeApiRequest call request headers result 我可以模拟该

随机推荐

  • 使用 jQuery 从纯 HTML 站点调用 .net Web 服务

    我想知道是否可以使用 jQuery 从 HTML 页面调用托管 net Web 服务 我尝试了这段代码 但它对我不起作用 myForm click function ajax type POST data url http localhos
  • Windows 上的 pyodbc 和 python 3.4

    pyodbc 是一个非常好的东西 但是 Windows 安装程序仅适用于其非常特定的 python 版本 随着 Python 3 4 的发布 唯一可用的安装程序一旦在注册表中看不到 3 3 尽管 3 4 肯定存在 就会停止 将 pyd 和
  • Git 开发与发布分支最佳实践

    我从每个冲刺开始就一直在监控两个分支 Release and Master Master分支是开发人员创建新分支 特定于任务 实施更改并创建合并到主分支中的拉取请求的地方 Release分支是特定于冲刺的 始终可提交给生产 我们只合并致力于
  • 在asp.net mvc中是否可以制作通用控制器?

    我正在尝试创建一个通用控制器 即 public class MyController
  • 类的计数器变量

    我在运行这段代码时遇到问题 类是 Student 它有一个 IdCounter 这就是问题所在 第 8 行 class Student idCounter 0 def init self self gpa 0 self record Eac
  • 通过媒体查询或检测到手机时提供较小版本的视频

    我从 2012 年就参加过这个讨论 如何为移动设备和桌面网页版加载不同的视频 https stackoverflow com questions 10750874 how to load different video for mobile
  • 是否可以订阅用户 online_presence 的实时更新?

    我的应用程序有一个搜索功能 您可以根据各种过滤器找到用户 我最近添加了一个指示器 以便您可以查看用户是否在线 我通过获取 user online presence 权限来完成这项工作 然后在过滤结果后 使用我存储在数据库中的用户 acces
  • 为什么 Collections.Generic.Queue 没有 Synchronized 方法,但 Collections.Queue 有?

    System Collections Queue班级有Queue Synchronized http msdn microsoft com en us library system collections queue synchronize
  • java泛型,未经检查的警告

    这是 oracle 页面中教程的一部分 考虑以下示例 List l new ArrayList
  • Gimp Python 插件 gimp.Image 作为 numpy 数组

    我正在为 GIMP 开发一个 python 插件 我想以 numpy 数组的形式获取图层的 RGB 矩阵 要访问 python 插件中的层 我使用以下代码 def python function img layer layer img la
  • ASP.Net 多租户 SaaS 应用程序中的本地化 (i18N)

    问题场景 在基于 SaaS 的应用程序中实施 ASP Net 本地化 额外的复杂性 租户应该能够编辑本地化内容 因此 如果托管应用程序有 10 个租户 每个租户支持 5 种语言 那么我们最终可能会得到 50 个翻译内容单元 鉴于上述情况 请
  • 时间:2017-05-17 标签:c#visual studio 2017CPU profilingout of memory异常

    我有一个长时间运行的 C 应用程序 正在 Visual Studio 2017 社区版中对其进行分析 运行大约 2 3 小时 然后我停止分析 和应用程序 以查看 CPU 使用情况 但是我可以看到 在构建报告时 内存使用量增加了 3GB 然后
  • Swift 中的三角函数[重复]

    这个问题在这里已经有答案了 我是 iOS 的初学者开发者 我使用一些在线教程来学习 Swift 现在我正在尝试开发自己的计算器 我自己有一个任务是按下 sin 和 cos 按钮 这将返回输入值的正弦或余弦函数 当然 Swift 中有 sin
  • 将现有项目推送到Github

    我有一个包含项目源的文件夹 我如何将这个项目推送到 Github 的存储库中 我尝试使用以下步骤 我在 GitHub 上创建了空存储库 我运行 git bash 并输入git init 所以项目根目录里面出现了 git文件夹 我使用以下命令
  • 如何让闪屏加载一次?

    所以 我开发了一个运行成功的启动屏幕 我怎样才能让它运行一次 并且只运行一次 我想构建一个注册屏幕 但我只希望它为用户显示一次 Help 阿曼尼 斯旺 import android app Activity import android o
  • 什么是 LLVM?用 LLVM 替换 Python VM 如何将速度提高 5 倍?

    Google 正在赞助一个开源项目 旨在将 Python 的速度提高 5 倍 空载燕子 http code google com p unladen swallow 似乎有一个好的项目计划 http code google com p un
  • 使用 App_GlobalResources 在 ASP.NET MVC 4 中进行本地化

    我正在努力完成两件事 本地化 FieldMustBeDate 和 FieldMustBeNumeric 的 内置 错误消息 本地化您可能遇到的一些其他错误消息 例如 PropertyValueRequired 通过使用http forums
  • Android Maven 未启动模拟器

    当我右键单击我的 Android 项目并选择Run gt Android Application 模拟器启动并且更改确实反映出来 但是当我执行以下命令时 它没有反映 mvn clean install mvn android deploy
  • 在排序数组中查找总和为 X 的一对整数的函数式方法

    这是我之前的后续question https stackoverflow com questions 42272546 how to traverse array from both left to right and from right
  • 如何使用 Rails 跨多个域共享用户会话?

    是否有人知道任何宝石 教程或解决方案使用户能够在一个域中登录网站并在同一会话中自动授予对其他合作伙伴域的访问权限 我有两个正在运行的 Rails 应用程序 我们称它们为 App A 和 App B App A 有一个与之关联的数据库 支持在