2

我正在做一个小小的node.js-project,在谷歌搜索的时候,我有点困惑,但也许你们中的一些人能够再次指出我的方向。

DocPad(优秀的软件)生成了几个网站,并托管在不同的域上。

所有这些网站现在都应该有一个“登录模块”(它也是用 Node.js 编写的,使用护照)。从视觉上看,它看起来类似于 Web-Kreation 中出色的登录滑块(这里是一个演示)。我的计划是使用 nginx 并将所有 /login-requests 路由到 login-app,它工作正常。

问题与多个域以及所有这些域的客户端实现有关。所有登录都使用相同的数据库。

我可以以某种方式同时使用两者,并从登录模块创建会话 cookie(它可以一直使用同一个域)吗?

4

2 回答 2

2

我正在回答我自己的问题以供参考,以防其他人遇到同样的问题。

最后,我通过一些不同的设置解决了我的问题。我没有使用模块,而是使用每个页面的 dns,而是为所有站点使用中央登录应用程序。网站本身不需要访问任何个人信息,所以这不是问题。

DocPad 仍被用于静态生成不同的网站(效果很好 - 我知道我经常这么说,但如果有一款出色的软件,没有理由不时不提它),以及所有静态内容使用 CDN 交付给用户。

登录系统是一个使用 Redis 作为唯一数据库的 node.js 应用程序。它通过一个简单的 iframe 集成到由 DocPad 在 login.example.com 上呈现的所有页面上。

于 2012-11-03T23:09:20.647 回答
1

在“登录应用程序”中成功登录后,您可以创建包含当前用户信息的加密字符串。您可以将此字符串传递回 get/post 参数,并重定向到必要的域。只有“登录应用”和您的网站知道加密密钥。您可以信任此加密数据。有必要确保每次密钥对于同一用户都是不同的。例如,您可以添加有关登录时间或随机时间的信息。解密数据后,您可以为特定域设置授权 cookie。

于 2012-03-09T12:14:50.713 回答