我正在开发一个应用程序,其中所有用户身份验证都在 ColdFusion 应用程序(基于 CFWheels)中进行,但与文件服务器的交互通过 Node.js 应用程序进行。我需要确保允许登录 CF 应用程序的用户访问 Node 服务器中的文件。我正在考虑使用 CFToken 或 Node 服务器可以读取并传递给 ColdFusion 的东西来设置 cookie,询问“嘿,这个 token 可以访问这个文件吗”
我唯一的问题是我不确定 CFTokens 最终是否会被重新使用,如果它们是我应该使用什么?
如果其他人有其他方法来做这种需要跨多个引擎重复使用的事情,我很想听听你的策略。
最佳答案
这听起来是个不错的方法。
但是,我只会使用 CFCOOKIE 来设置您自己设计的 cookie。
当然,这两个服务器必须共享一个域名才能读取同一个 cookie。您还必须将 cookie 设置为域 cookie。
一种简洁的架构方法是创建一个专门用于安全性的完整 CFC。
它将具有生成和验证登录 token 的方法。
您的 CF 应用程序将使用它来生成 token ,并且您可以让您的 node.js 应用程序使用
http://server.com/path/security.cfc?method=validateToken&token=whatever
一个更有效的方法,假设他们可以访问相同的数据存储,将使用相同的算法来生成/解码(如果需要)两个系统中的 token ,并让 node.js 应用程序直接访问数据存储。
当我需要这样做时,我们将“ session ” token 存储在 mongodb 中,并直接从每个应用程序(CF、Java 和 Rails)访问数据存储。 CF 系统负责初始身份验证。另外两个系统不做认证,只是验证token,如果没有找到/无效/等,以适当的方式响应。
关于authentication - 跨平台登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043310/