在同一域上的节点应用程序和 Rails 应用程序之间共享身份验证数据的最佳方式

发布于 2024-11-28 03:28:40 字数 318 浏览 0 评论 0原文

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

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

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

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

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

I want to to decouple some parts in my rather large app and delegate them to an external node app, mainly for uploads but authentication remains a problem.

On the Rails side I'm using Devise, clients and forms will point to this new subdomain where the node app resides.

The node app is using express and I can connect to the shared database through the mysql module.

The idea is to use heroku for the main app, and delegate uploads to a node app running on a EC2 instance. In order to access the app I want to pass authentication informations, given that this endpoint will used by both API clients and web forms.

Devise has support for authentication tokens passed via URL, but I'm wondering what are your solutions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽清梦 2024-12-05 03:28:40

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

Well if your subdomains are just 1-dot apart like www.myapp.example and uploads.myapp.example, you can share both the session cookie and the session info in the DB. I would just code the node app to validate the session cookie on every request the same way devise does and you're done. Is the upload subdomain user facing, as in does it render HTML to the browser or have to display a login form? If so, than the shared session table in the DB is probably not the best idea, but if the node.js is just for uploads and can redirect to www.myapp.example when the session is not valid, all should be well. Just make sure you set the domain field of the cookie to .myapp.example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文