ruby-on-rails - 在同一域上的 Node 应用程序和 Rails 应用程序之间共享身份验证数据的最佳方式

标签 ruby-on-rails node.js heroku devise express

我想将相当大的应用程序中的某些部分解耦,并将它们委托(delegate)给外部 Node 应用程序,主要用于上传,但身份验证仍然是一个问题。

在 Rails 方面,我使用 Devise,客户端和表单将指向 Node 应用程序所在的这个新子域。

Node 应用程序正在使用express,我可以通过mysql模块连接到共享数据库。

这个想法是使用heroku作为主应用程序,并将上传委托(delegate)给在EC2实例上运行的 Node 应用程序。为了访问该应用程序,我想传递身份验证信息,因为该端点将由 API 客户端和 Web 表单使用。

Devise 支持通过 URL 传递的身份验证 token ,但我想知道您的解决方案是什么。

最佳答案

如果您的子域仅相隔 1 个点,例如 www.myapp.example 和 uploads.myapp.example,您可以共享 session cookie 和数据库中的 session 信息。我只需编写 Node 应用程序来验证每个请求的 session cookie,就像 devise 所做的那样,然后就完成了。上传子域是否面向用户,例如它是否将 HTML 渲染到浏览器或必须显示登录表单?如果是这样,那么数据库中的共享 session 表可能不是最好的主意,但是如果node.js只是用于上传并且可以在 session 无效时重定向到www.myapp.example,那么一切都应该很好。只需确保将 Cookie 的域字段设置为 .myapp.example

关于ruby-on-rails - 在同一域上的 Node 应用程序和 Rails 应用程序之间共享身份验证数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976301/

相关文章:

javascript - 尝试在heroku中推送rails应用程序并收到js错误

ruby-on-rails - 如何使用 RSpec 更新测试模型中的属性

ruby-on-rails - 检查第一个方法是否返回 nil 并应用另一个方法的优雅方法

node.js - 覆盖 Jade 中的风格?

javascript - 将对象数组过滤为 mongodb/meteor 中的单个匹配对象

javascript - Heroku文件上传和node.js

heroku - 使用 Play 2 框架在 Heroku 中进行 Akka 调度

ruby-on-rails - 如何在 Rails 应用程序中使用 mini_magick 获取 EXIF 关键字?

node.js - 使用 package-lock 和 npm 链接

ruby-on-rails - 在 .bashrc 环境变量中存储 Amazon S3 凭证会导致 Rails 应用程序失败