在客户端保存状态或在PHP中保存应用程序变量

时间:2013-09-10 11:39:55

标签: php session cookies single-sign-on session-cookies

我有一个网站,其中用户通过FB和Gmail登录,如果A先生通过Facebook登录并在网站上成功登录,那么假设我注销并通过Gmail登录,我不会将他视为新用户,但我会将旧用户ID分配给他,因为这是同一个人。 因此,我认为解决方案是在用户计算机上放置一个cookie并检查他是否是现有用户,以便我们不会再次注册他,但cookie的问题可能是用户清除/关闭浏览器cookie,从其他PC登录。我不知道什么是最好的场景来处理这种情况? 另一个例子是登录Stackoverflow时我可以使用Gmail登录或Yahoo.etc 任何帮助

1 个答案:

答案 0 :(得分:0)

我看到这个的方式是你有两个选择:

缓存

您可以在客户端计算机上设置一个cookie,按照您的建议有效地链接这两个帐户......

缺点

  1. 如果您使用其他帐户登录其他计算机,则不会链接这两个帐户。
  2. 实际上并没有告诉通过Facebook登录的人,以及通过Google登录的人实际上是同一个人。您可以告诉的唯一方法是通过电子邮件地址,但这可能会引起混淆。
  3. 的OpenID

    Open ID是一项服务,有效地允许您使用任何“主要”帐户登录,包括Facebook,Google,Yahoo,Microsoft,AOL等...

    有关OpenID的详细信息,请参阅here

    它完全符合您的要求,但它适合您......

    我感谢您可能已经在您的网站上为Facebook和Google编写了登录信息,但是在您的网站上实施OpenID库所需的时间远远超过了管理和处理错误的压力。 / p>

    请参阅以下PHP库以在您的站点上实现OpenID功能:

    将此集成到您的网站中真的不会花很长时间,它将消除必须从自定义登录处理cookie等的压力......