PHP中的登录集成

PHP中的登录集成,php,authentication,integration,mediawiki-extensions,Php,Authentication,Integration,Mediawiki Extensions,在我的主机中,我目前安装了两个wordpress应用程序、一个phpBB论坛和一个MediaWiki 是否有方法合并登录,以便所有应用程序共享相同的凭据 例如,我只想在phpBB中注册,然后我想使用给定的用户名和密码访问所有其他应用程序 即使您不知道统一的方式,您还知道什么样的登录集成?每种方法的优缺点?我不知道如何共享会话cookie,但您可以轻松共享相同的登录名。 i、 人们需要分别登录这两个站点,但可以使用相同的用户名和密码 在mediawiki文件“LocalSettings.PHP”中

在我的主机中,我目前安装了两个wordpress应用程序、一个phpBB论坛和一个MediaWiki

是否有方法合并登录,以便所有应用程序共享相同的凭据

例如,我只想在phpBB中注册,然后我想使用给定的用户名和密码访问所有其他应用程序


即使您不知道统一的方式,您还知道什么样的登录集成?每种方法的优缺点?

我不知道如何共享会话cookie,但您可以轻松共享相同的登录名。 i、 人们需要分别登录这两个站点,但可以使用相同的用户名和密码

在mediawiki文件“LocalSettings.PHP”中,您可以告诉它使用不同的(wordpress)数据库进行身份验证:

e、 g


请看

几年前我尝试过这样做,我记得这并不容易

我这样做的方式是创建一个全新的表给user/pass,然后用新表的外键替换相应软件中的这些列-这需要对每个应用程序中的核心文件进行大量自定义调整-主要是确保对这些数据的所有SQL请求都有新表所需的额外连接。如果我有时间,我可能会尝试一步一步地提供所需的更改

不过,这种方法有一些相当大的缺点。主要的一个是从现在开始你必须手动更新任何补丁

如果您还没有内容或用户,请查看哪些内容或用户将使您的工作更简单

我不太记得了,但我相信我遇到的最大问题是MediaWiki要求用户名的格式与phpBB冲突



当然,一种完全不同的方法是对每一个软件进行修改,以使用OpenID。我相信插件/扩展可用于您提到的所有应用程序。

我曾经从phpBB端进行了phpBB/MediaWiki登录集成


.

如果你正在集成一系列不同的应用程序,而你真的只是想要一个桥接器,那么我已经成功地使用了来自的桥接器。您可以在此处看到受支持的应用程序:

我还为phpBB集成使用了MediaWiki扩展:

我个人认为,在使用多个预构建的应用程序时,集成登录系统即使不是最难的工作,也是最难的工作之一。作为重用和模块化的粉丝,我觉得这令人失望。如果有人知道在random app X和random app Y之间处理此问题的简单方法,我很想知道。

当您集成系统时。记住两件事:

  • 登录到系统
    检查两个系统的用户名/密码

  • 更改密码
    在两个系统上更新密码


  • 您可以为mediaWiki编写自定义登录挂钩。我已经为LibraryThing完成了这项工作,这样我们的主站点的登录凭据就可以转移到我们的mediaWiki安装中。身份验证钩子扩展了mediaWiki的AuthPlugin

    有几个小问题:

  • mediaWiki用户名必须以大写字母开头(因此,如果允许区分大小写的用户名,那么如果两个用户的wiki名称冲突,则可能会出现问题)
  • 用户名中的下划线在mediaWiki中转换为空格
  • 但是,如果您能够处理这些问题,那么当然可以在mediaWiki中使用您自己的用户/密码数据

    优点:

  • 用户不必分别登录到每个区域。一旦他们登录到主站点,他们也会登录到wiki
  • 您知道,不同系统的用户名是相同的,可以在链接等中利用这些用户名

  • 一个选项是OpenID,您可以将其集成到和中

    第二个选项是设置LDAP服务器,您还可以将其集成到和中

    如果所有站点都在同一根域上,第三个选项是修改注册、登录和注销代码,以便在每个站点上同时复制这些操作。这会让事情变得一团糟,但如果你赶时间的话,这可能是最简单的短期解决方案。一旦您在每个站点中跟踪到帐户代码,只需复制、粘贴和更改一些cookie参数即可

    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');