2010-07-26 50 views
0

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

另一个问题,与第一个问题有关:如果用户在创建OpenID之后在其中一个数据库中更改其密码,则该ID仍然可用,对吧?

回答

1

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

解决方案是创建一个“主安全数据库”,用于保存成功登录所需的信息。在用户的权限也被定义的情况下,在数据库中有几张表,当用户从网络邮件应用程序或音乐下载应用程序登录时,安全数据库将检查有效凭证,并且您可以保留通过输出(和跨多个站点)通过传递像一个腌MD5哈希密码,这样用户只需要登录一次,并且在转发到下一个网站,自动获取登录。

然后,您可以延长“用户表”在安全数据库中具有特定网站数据库中的相应用户表(不带自动递增的用户ID密钥,但引用安全数据库密钥)。因此,在您的音乐应用程序中,您可以存储仅供音乐网站使用的“播放列表”或其他一些人口统计类型信息等信息,同样适用于您的网络邮件网站。

将此功能与OpenID结合使用,您可以在所有网站上使用非常强大的系统,只需要一次登录。

相关问题