【问题标题】:How do I link an OpenID provider to multiple databases如何将 OpenID 提供程序链接到多个数据库
【发布时间】:2010-07-26 22:04:16
【问题描述】:

OpenID 提供者是否需要创建自己的数据库,或者他可以使用多个数据库(例如,当用户创建 OpenID 时,用户、密码、电子邮件都是从其中一个数据库中提供的)。我不想创建另一个包含来自其他人的信息的数据库,我想在其中写入 id 和可能在用户登录或未登录时向我显示的一些标志。明确地说,我有一个网络邮件应用程序和一个音乐下载应用程序。当用户登录到 webmail 时,他应该只向音乐下载应用程序提供 OpenId,然后应该登录。如果他没有登录邮件应用程序,他应该被重定向到提供者(我使用社区 ID 1.2.1 编写在 PHP 中),他应该提供邮件数据库中的用户名和密码。

另一个与第一个问题相关的问题:如果用户在创建 OpenID 后更改其中一个数据库中的密码,那么 id 仍然可用,对吧?

【问题讨论】:

    标签: php openid


    【解决方案1】:

    几年前,当我在一家拥有多个在线应用程序但需要 1 人登录才能访问所有 3 个网站的公司工作时,我遇到了这个问题。

    解决方案是创建一个“主安全数据库”,其中包含成功登录所需的信息。您将在该数据库中有几个表,其中还定义了用户的权限,当用户从 webmail 应用程序或音乐下载应用程序登录时,将检查安全数据库的有效凭据,您可以持久保存通过传递诸如加盐的 MD5 哈希之类的东西来彻底登录(以及跨多个站点),这样用户只需登录一次,然后在转发到下一个网站时自动登录。

    然后,您可以使用特定网站数据库中的相应用户表扩展安全数据库中的“用户表”(不携带自动递增的用户 ID 密钥,但引用安全数据库的密钥) )。因此,在您的音乐应用程序中,您可以存储诸如“播放列表”之类的信息或仅由您的音乐网站使用的其他一些人口统计类型信息,您的网络邮件网站也是如此。

    将此与 OpenID 相结合,您将拥有一个非常强大的系统,只需一次登录即可在您的所有网站上使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 2014-02-18
      • 2021-03-11
      • 1970-01-01
      • 2019-08-17
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多