PHP 中的登录集成

Posted

技术标签:

【中文标题】PHP 中的登录集成【英文标题】:Login Integration in PHP 【发布时间】:2010-09-07 13:29:44 【问题描述】:

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

有没有办法合并登录,以便所有应用程序共享相同的凭据?

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

即使你不知道统一的方式,你还知道哪些其他的登录集成方式?各有优劣?

【问题讨论】:

【参考方案1】:

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

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

    更改密码 更新两个系统的密码。

【讨论】:

【参考方案2】:

我不知道如何共享会话 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

【讨论】:

【参考方案3】:

一个选项是 OpenID,您可以将其集成到 phpBB、WordPress 和 MediaWiki。

第二个选项是设置 LDAP 服务器,您也可以将其集成到 phpBB、WordPress 和 MediaWiki。

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

【讨论】:

【参考方案4】:

如果您正在集成一堆不同的应用程序,并且您真的只是想要一个桥接器,那么我在 Single-Signon.com 的桥接器上取得了很好的成功。您可以在此处查看支持的应用程序: http://www.single-signon.com/en/applications.html

我还为 phpBB 集成使用了 MediaWiki 扩展: http://www.mediawiki.org/wiki/Extension:PHPBB/Users_Integration

【讨论】:

【参考方案5】:

我曾经从 phpBB 端做了一个 phpBB/MediaWiki 登录集成。

Check it out.

【讨论】:

【参考方案6】:

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

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

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

如果您还没有内容或用户,请查看http://bbpress.org/documentation/integration-with-wordpress/,这将使您的事情变得更简单。

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


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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

有几个小问题:

    mediaWiki 用户名必须以首字母大写开头(因此,如果您允许区分大小写的用户名,如果两个用户的 wiki 名称冲突,则可能会出现问题) 用户名中的下划线在 mediaWiki 中被转换为空格

但是,如果您能处理这些问题,那么您当然可以在 mediaWiki 中使用您自己的用户/密码数据。

优点:

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

【讨论】:

以上是关于PHP 中的登录集成的主要内容,如果未能解决你的问题,请参考以下文章

带有沙盒帐户的PHP项目中的PayPal集成

php的laravel框架快速集成微信登录

用户尝试登录时,iOS App 中的 Facebook 集成问题

setContentView 中的 Android Facebook 集成登录异常

如何将谷歌登录集成到我的网站并收集用户详细信息?

亚马逊支付与 Javascript 和 PHP 的集成 - PaymentPlanNotSet