php - 在我的站点中使用 PHPBB2 登录凭据

标签 php authentication credentials phpbb

我目前正在为我网站的一部分使用 PHPBB2 论坛,我想扩展该网站(添加新页面、脚本等)。我想限制已经登录 PHPBB2 论坛的用户访问这些页面。

实际上,如果只有某个MemberGroup 的成员才能访问这些页面,那就太好了。

有没有办法在我网站的其余部分使用相同的登录凭据,并检查成员来自哪些组?

谢谢

(顺便说一下,这些页面是用 PHP 编写的)

最佳答案

如果用户登录到 PHPBB,则很有可能(尽管并非总是如此)他们将拥有一个 cookie,您可以读取该 cookie 并帮助对照数据库检查谁是谁。

在这种情况下,您需要打破下面的 cookie 面包屑:

$_COOKIE["phpbb2mysql_data"]

让我们用一个例子,把它吹出来,找到我们需要查询数据库的数据。以下是在上述 cookie 中找到的 block :

a:2:{s:11:"autologinid";s:0:"";s:6:"userid";s:1:"3";}

为此,您需要进入并提取恰好对应于已登录 PHPBB 用户的“3”。

Unserialize that data将该 user_id 拉出:

 $goo = unserialize($_COOKIE["phpbb2mysql_data"]);
 $extracted_id = $goo["userid"];

(感谢 epochwolf 指出该 cookie 的上述序列化形式)

该号码可用于对数据库运行以检查该成员属于哪个组。您将针对 phpbb_user_group 表运行检查(如果您将 phpbb_ 作为论坛表的前缀。)

如果您不想从数据库中跟踪组 ID,那么您将需要对名称进行某种连接和测试。也许是这样的:

SELECT pug.user_id FROM phpbb_user_group pug 
 LEFT JOIN phpbb_groups g 
 ON pug.group_id=g.group_id
 WHERE pug.user_id='$extracted_id'
 AND g.group_name='Foo';

如果您可以从中拉出一行,那么您就发现自己是属于该 Foo 组的登录用户。

关于php - 在我的站点中使用 PHPBB2 登录凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/630027/

相关文章:

php - 如何使用 Bootstrap 修复菜单

php - 通过脚本重定向图像是不好的做法吗?

php - 无法让用户登录 adm 部分

java - Apache shiro - 如何使用单独的数据库表支持多种用户类型

wcf - ChannelFactory Credentials + 对象是只读的

docker - 凭证不适用于 "docker login"

javascript - POST Json 到 PHP 获取 VAR

php - 用于向多个客户部署 PHP MySQL 应用程序的重复表

PHP 登录屏幕

ssl-certificate - 在哪里存储 DevOps 的凭据?