如何使用 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 跨多个域共享用户会话? 的相关文章

  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • Rails 3 + angularjs + 缩小在生产中不起作用:未知提供者:eProvider

    我已遵循我能找到的所有修复缩小的说明 例如 var MyController function renamed scope renamedGreeter MyController inject scope greeter and someM
  • Rubymine 6 更新/刷新 Rails 项目中可用的方法和路径?

    这是一个例子 假设我更新路线resources foo这给我带来了一些新的道路 例如 new foo session当我开始在 ERB 视图中输入路径时 我希望它向我显示 建议自动完成与路径匹配的名称 当我输入 new foo 我会得到所有
  • 当用户再次访问同一页面时保持登录状态?

    目前我正在使用会话来登录用户 但是当我关闭浏览器并再次打开它时 我必须再次登录 你如何让用户在 2 周内保持登录状态 那么是通过cookie吗 那么您想要 在这台计算机上记住我 选项吗 这是一种与语言无关的方法 创建一个至少包含以下内容的数
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • 如何在 Rails 测试中测试 params 哈希?

    以下内容会生成错误 未定义的局部变量或方法 params assert equal params recipient id users one id 如何测试参数哈希 另外 你如何测试assert redirect当存在参数时 参数附加到
  • Rails、REST 架构和 HTML 5:带有预检请求的跨域请求

    在致力于使我们的网站 HTML 5 友好的项目时 我们渴望采用跨域请求的新方法 不再通过隐藏的 iframe 发布 使用访问控制 http www w3 org TR access control 根据规范 我们开始设置一些测试来验证各种浏
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • 如何将会话管理添加到简单的 Perl CGI 网页?

    我有一个简单的网页 到目前为止不需要任何登录 它是用 Perl CGI 编程的 我想知道添加会话支持以便获得登录信息的步骤 我不需要非常复杂的方法 因为网页非常简单 另外 我想要一些关于支持 Perl 会话所需的技术 库的建议 我在很多很多
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • session_regenerate_id 没有创建新的会话 id

    我有一个脚本 旨在完成当前会话并开始新的会话 我使用了一段代码 它在我的开发计算机上运行良好 但是 当我将其发布到生产服务器时 会话 ID 始终保持不变 以下是我重新启动会话的代码 session start SESSION array P
  • 休眠会话已关闭

    当我调用方法 session begin 事务时 如下所示 session factory is instantiated via a bean Session session this getSessionFactory getCurre
  • Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

    使用 AJAX 动态渲染页面以响应提交的表单似乎很常见 其他类似的问题都没有集中于如何以一般方式做到这一点 我能找到的关于这个主题的最好的博客文章在这里 http www gotealeaf com blog the detailed gu
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • 让 Rails 生产在端口 80 上运行

    我正在尝试让我的 Rails 应用程序在生产模式下运行 但遇到了一些困难 我正在使用 Passenger 和 apache 并运行 Ubuntu 12 04 我已经配置和创建了生产数据库 并设置了乘客 状态如下 rvmsudo passen

随机推荐

  • 使用 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 有一个与之关联的数据库 支持在