当有人登录我的网站时,如何自动创建 phpBB 会话?(单点登录)


How can I automatically create a phpBB session when someone logs onto my website? (Single sign-on)

我目前有一个带有用户会话和phpBB讨论板的网站。我想合并网站和phpBB会话功能,以便如果用户登录主网站,我想自动创建phpBB会话。

我在互联网上找不到适合我需求的合适教程/示例——我只能以相反的方式找到示例。

是否有处理此问题的推荐方法?

在过去,

强烈建议您不要将phpBB集成到自己的登录系统中,因为phpBB是一个复杂的软件(当然仍然是),并且不是很可扩展,但是自phpBB3以来,潮流已经发生了变化,它们使其更具可扩展性,那么有哪些选择呢?

身份验证插件(适用于 phpBB 3.0)

https://wiki.phpbb.com/Authentication_plugins

phpBB3 支持外部身份验证插件,可用于替换传统的基于数据库的用户身份验证,该身份验证仍可用作数据库身份验证方法。

这些插件在 includes/auth/ 目录中作为可动态加载的 PHP 模块实现。每个模块都由其方法标识符标识。标识符用于模块名称,它是模块中声明的每个函数的后缀。

要添加新的身份验证方法(我们称之为 foo ),您必须在 includes/auth/ 目录中创建源文件auth_method.php(在我们的示例中auth_foo.php)。此源文件应提供许多函数。身份验证模块中唯一的强制函数是login_method()函数(在我们的示例中login_foo())。所有其他方法都是可选的。

includes/auth/目录中创建新的身份验证模块后,可以在"客户端通信/身份验证设置"下的"管理控制面板"中选择它作为所需的身份验证方法。

我无法找到此功能的工作示例,但通过一些编程知识,您应该能够构建自己的功能。

身份验证提供程序(适用于 phpBB 3.1+)

https://area51.phpbb.com/docs/dev/3.1.x/extensions/tutorial_authentication.html#authentication-providers(附示例)

phpBB 附带的身份验证提供程序至少需要两个文件:一个类和phpBB/config/auth_providers.yml文件中的条目。作为扩展的一部分而不是需要phpBB/config/auth_providers.yml条目的身份验证提供程序除了提供扩展的所有正常要求外,还必须提供自己的 yaml 文件来定义服务。

关于身份验证提供程序的 phpBB Wiki 条目附带了一个示例,因此如果您的开发板使用的是 phpBB 3.1 或更高版本,我建议从该示例开始。