跨平台登录

时间:2011-02-18 15:43:48

标签: authentication coldfusion cross-platform node.js

我正在开发一个应用程序,其中所有用户身份验证都发生在ColdFusion应用程序中(基于CFWheels),但是与文件服务器的交互是通过Node.js应用程序进行的。我需要确保允许登录CF应用程序的用户访问节点服务器中的文件。我正在考虑使用CFToken设置一个cookie,或者节点服务器可以读取的内容,并传递给ColdFusion,询问“嘿这个令牌可以访问此文件”

我唯一的问题是我不确定CFTokens最终会被重复使用,如果它们是我应该使用的呢?

如果其他人有其他办法做这种事情,认证需要在多个引擎中重复使用,我很乐意听取您的策略。

2 个答案:

答案 0 :(得分:4)

这听起来像是一种很好的方式。

但是,我只想用CFCOOKIE来设置你自己设计的cookie。

当然,这两个服务器必须共享域名才能读取相同的cookie。您还必须将cookie设置为域cookie。

设计这个的一个简洁方法是创建一个专用于安全性的整个CFC。

它将有生成和验证登录令牌的方法。

您的CF应用程序将使用它来生成令牌,您可以让您的node.js应用程序使用

通过Web服务调用它
http://server.com/path/security.cfc?method=validateToken&token=whatever

一种更有效的方法,假设他们可以访问相同的数据存储区,将使用相同的算法生成/解码(如果需要)两个系统中的令牌,并直接让node.js应用程序访问数据存储区。

当我需要这样做时,我们在mongodb中存储了“session”标记,并直接从每个应用程序(CF,Java和Rails)访问数据存储区。 CF系统负责初始身份验证。其他两个系统没有进行身份验证,只是验证了令牌,如果找不到/无效/等,则以适当的方式响应。

答案 1 :(得分:0)

叶,您想要阅读的内容是SSO(单点登录)。

OpenID是一种流行的,适用于包括CF在内的多种平台。

如果您有冒险精神......稍微考虑一下,设置自己的共享登录机制相当容易 - 通常是通过cookie或标题共享一些令牌,或者也可以通过RESTfull(或任何)也是网络服务的形式。