是否可能有两个站点具有唯一的登录系统


is it possible 2 sites having unique login system

可能重复:
单一登录-如何实现?

我有两个不同的网站,一个用于促销,另一个用于销售使用cs-cart的产品。

当用户登录到促销网站时,我如何添加将其登录到cs购物车网站的功能?

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

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

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

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

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

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

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

如果站点不在服务器上工作,您可以很容易地共享同一个数据库。你可以使用cookies,但我看不出有什么方法可以很容易地更改它们而不会引起问题。我的做法是,每当他们注册/登录时,它都会将他们的IP与用户信息一起放入数据库中,这样你就可以在他们访问两个网站时检查IP。

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

  1. 当他访问site2时,浏览器会重定向到site1授权页面,在那里它会检查用户是否已经登录
  2. 这个脚本标记(在site2或同一个DB的数据库中(用户"logged_in_at_site2"=True(或类似的东西(
  3. 浏览器被重定向到站点2。(在此阶段,用户已标记为已登录(

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

了解这一切的好方法是登录社交网络。(例如Facebook(

我已经使用Java做到了这一点,但也可以使用PHP,你可以选择使用cookie,但这只适用于同一域,你也可以使用第三方解决方案(我建议(你可以在找到开源解决方案

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

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

是,仅当这两个站点共享相同的数据库