PHP中的登录集成
在主机上,我目前安装了2个wordpress应用程序,1个phpBB论坛和1个MediaWiki。
有没有一种方法可以合并登录名,以便所有应用程序共享相同的凭据?
例如,我只想在phpBB中注册,然后再使用给定的用户名和密码访问所有其他应用程序。
即使我们不知道统一的方式,我们还知道其他哪些登录集成?各自的优缺点?
解决方案
回答
我不知道如何共享会话cookie,但是我们可以轻松共享相同的登录名。
即,人们将需要分别登录两个网站,但能够使用相同的用户名和密码。
在mediawiki文件" LocalSettings.PHP"中,我们可以告诉它使用其他(wordpress)数据库进行身份验证:
例如
require_once('includes/AuthPlugin.php'); require_once('extensions/AuthPress.php'); $wgAuth = new AuthPress(); $wgAuth->setAuthPressTablePrefix('evo_'); # Only include the following if you aren't using the same db as MediaWiki $wgAuth->setAuthPressDBServer ('localhost'); $wgAuth->setAuthPressDBName('yourWordPressDB'); $wgAuth->setAuthPressUser('mySQL user for same'); $wgAuth->setAuthPressPassword('The password');
参见http://bbpress.org/forums/topic/mediawiki-bbpress-and-wordpress-integration
回答
几年前我曾尝试过这样做,但我记得这并不是一件容易的事。
我这样做的方式是创建一个新的表以供用户/传递,然后用新表的外键替换相应软件中的这些列,这需要对每个应用程序中的核心文件进行大量自定义调整,主要是确保所有SQL请求此数据具有新表所需的额外联接。如果有时间,我可能会尝试逐步提供所需的更改。
但是,这种方法有一些很大的缺点。从现在开始,主要的要手动更新所有补丁
如果我们还没有内容或者用户,请访问http://bbpress.org/documentation/integration-with-wordpress/,这将使工作变得简单得多。
我不太记得,但是我认为我遇到的一个大问题是MediaWiki要求用户名的格式一定与phpBB冲突。
当然,一种完全不同的方法是修改每个软件以使用OpenID _我相信我们提到的所有应用程序都容易使用插件/扩展。
回答
我曾经从phpBB端开始进行phpBB / MediaWiki登录集成。
一探究竟。
回答
如果我们要集成许多不同的应用程序,并且我们确实只想要一个桥梁,那么Single-Signon.com上的桥梁就取得了很好的成功。我们可以在此处查看受支持的应用程序:
http://www.single-signon.com/en/applications.html
我还使用MediaWiki扩展进行phpBB集成:
http://www.mediawiki.org/wiki/扩展名:PHPBB / Users_Integration
回答
我个人认为,使用多个预构建的应用程序时,集成登录系统是最困难的工作之一。作为重用和模块化的忠实拥护者,我对此感到失望。如果有人知道任何简单的方法来处理随机应用X和随机应用Y之间的问题,我很想知道。
回答
当我们集成系统时。只要记住两件事:
- 登录系统检查两个系统的用户名/密码。
- 更改密码在两个系统上都更新密码。
回答
我们可以为mediaWiki编写自定义登录钩。我已经完成了LibraryThing的工作,以便将主站点的登录凭据转移到我们的mediaWiki安装中。身份验证挂钩扩展了mediaWiki的AuthPlugin。
有几个小问题:
- mediaWiki用户名必须以大写字母开头(因此,如果允许区分大小写的用户名,那么如果两个用户的Wiki名称冲突,则可能会出现问题)
- 用户名中的下划线将转换为mediaWiki中的空格
但是,如果我们可以处理这些问题,那么肯定可以在mediaWiki中使用我们自己的用户/密码数据。
好处:
- 用户不必分别登录每个区域。一旦他们登录到主站点,他们也将登录到Wiki。
- 我们知道系统中的用户名相同,并且可以在链接等中利用用户名。
回答
一种选择是OpenID,我们可以将其集成到phpBB,WordPress和MediaWiki中。
第二种选择是设置LDAP服务器,我们也可以将其集成到phpBB,WordPress和MediaWiki中。
如果所有站点都在同一根域上,则第三个选项是修改注册,登录和注销代码,以便在每个站点上同时复制这些操作。这很麻烦,但是如果我们急忙的话,这可能是最简单的短期解决方案。跟踪每个站点中的帐户代码后,只需复制,粘贴和更改一些cookie参数即可。