0

可能重复:
单点登录 - 如何实施?

我有 2 个不同的网站,一个用于促销目的,另一个用于使用cs-cart.

当用户登录促销网站时,如何添加将用户登录到他们的 cs-cart 网站的功能?

4

6 回答 6

1

这是一个众所周知的要求,称为Single Sign On,并且有一些实现它的标准。基本概念是一个网站(身份消费者)可以将用户身份验证请求委托给另一个网站(身份提供者),而不是自行评估请求。在您的情况下,您的网站之一将是提供者,而您的所有其他附属网站将是消费者。

第一个标准是SAML,由 OASIS 标准组维护。SAML 是开放且庞大的,大多数现实世界的示例仅实现了整个 SAML 规范的一小部分。Google 有一个SAML SSO 集成,并且有一个非常好的 PHP 库,称为SimpleSAML,它涵盖了大多数理想的用例。

解决这个问题的另一个标准是 OpenID。我从来没有处理过它,但一个很好的示例实现是 Stack Overflow 本身。

还有 Facebook Connect 解决了类似的问题,并依靠 Facebook 作为身份提供者。

这是目前的热门话题,因为专业服务提供商寻求将其平台与其他提供商集成。祝你好运。

于 2011-08-24T19:46:07.357 回答
0

如果站点在服务器之外工作,那么您可以轻松地共享同一个数据库。您可以使用cookiese,但我看不到可以轻松更改它们并且不会引起问题的方法。我的做法是,每当他们注册/登录时,它会将他们的 IP 与用户信息一起放入数据库中,这样您就可以在他们访问两个站点时检查 IP。

于 2011-08-03T19:01:34.910 回答
0

您有站点 1 和站点 2。
用户已登录 site1。

  1. 当他访问 site2 时 - 浏览器被重定向到 site1-authorization-page 以检查用户是否已经登录。
  2. 此脚本标记(在 site2 的数据库或同一数据库中)用户“logged_in_at_site2”=True(或类似的东西)。
  3. 浏览器被重定向到 site2。(在这个阶段用户已经被标记为已登录)

还必须为 site2 创建一个 cookie,以在上次重定向后识别用户。

了解这一切的好习惯是使用社交网络登录。(例如脸书)

于 2011-08-03T19:03:23.327 回答
0

我已经使用 Java 完成了,但也可以使用 PHP,您可以选择使用 cookie,但仅适用于同一域,您也可以使用第三方解决方案(我推荐),您可以在以下位置找到开源解决方案

http://code.google.com/apis/apps/open_source_projects.html#sso

让我知道你是否需要帮助,祝你好运

于 2011-08-03T20:09:11.130 回答
0

创建site.old/superlogin.php发送用户授权 cookie 并将他重定向到的页面site.promo

site.promo登录后将用户重定向到(site.old/superlogin.php?token=userUniqueTokenToAuthIt它将被验证并重定向回来)

于 2011-08-03T18:55:31.043 回答
-1

是的,只有这两个站点共享相同的数据库

于 2011-08-03T18:55:34.383 回答