我正在开发一个应用程序,其中所有用户身份验证都在ColdFusion应用程序(基于CFWheels)中进行,但与文件服务器的交互是通过Node.js应用程序进行的。我需要确保登录到CF应用程序的用户有权访问节点服务器中的文件。我在考虑设置一个带有CFToken或节点服务器可以读取并传递给ColdFusion的cookie,询问“嘿,这个令牌可以访问这个文件吗?”
我唯一的问题是,我不确定CFTokens最终是否会被重用,如果是的话,我应该用什么来代替呢?
如果其他人有其他方法来做这类需要跨多个引擎重用身份验证的事情,我很想听听您的策略。
发布于 2011-02-18 23:54:14
这听起来是一个很好的方法。
但是,我只会使用CFCOOKIE来设置您自己设计的cookie。
当然,这两个服务器必须共享一个域名,才能读取相同的cookie。您还必须将cookie设置为域cookie。
一种简洁的架构方法是创建一个致力于安全性的完整的CFC。
它将具有生成和验证登录令牌的方法。
您的CF应用程序将使用它来生成令牌,您可以让您的node.js应用程序使用
http://server.com/path/security.cfc?method=validateToken&token=whatever一种更有效的方法是,假设它们可以访问相同的数据存储,则可以使用相同的算法在两个系统中生成/解码(如果需要)令牌,并让node.js应用程序直接访问数据存储。
当我需要这样做时,我们将“会话”令牌存储在mongodb中,并直接从每个应用程序(CF、Java和Rails)访问数据存储。CF系统负责初始身份验证。其他两个系统不进行身份验证,只是验证令牌,如果没有找到/无效/等,则以适当的方式响应。
发布于 2011-02-18 23:46:37
叶,你想了解的是SSO (单点登录)。
OpenID是一种流行的应用程序,可以在包括CF在内的多个平台上运行。
如果你有冒险的感觉...稍加修改,就可以很容易地设计出自己的登录共享机制--通常是通过cookie或header共享一些令牌,或者也可以通过RESTfull (或任何)形式的webservice调用。
https://stackoverflow.com/questions/5043310
复制相似问题