我真的可以使用一些帮助。phpBB 3.1+身份验证插件
背景: 我已经安装了phpBB 3.0,并从我自己的网站的数据库工作的外部身份验证。我的工作是实现这个优秀的工作示例:https://github.com/nzeyimana/PhpBBAuthDbExt/blob/master/auth_dbext.php 我现在想将我的论坛升级到3.2(当前版本)。
?问题: 试图按照文档https://area51.phpbb.com/docs/dev/32x/extensions/tutorial_authentication.html#authentication-providers,也phpBB的社区/ viewtopic.php F = 461 &吨的例子= 2272371
我已经复制从例如文档类文件,调用它db2.php并放在“ext/acme/demo/auth/provider /”中我也从示例文档中复制了服务文件,将其命名为services.yml并放在“ext/acme/demo/config /”
这两个文件内容的副本在下面的底部。
根据文档,我应该在访问控制面板(ACP)的身份验证部分的身份验证方法列表中看到db2 - 但没有任何内容出现。我刷新论坛缓存,刷新浏览器缓存等,都无济于事。
我错过了什么吗?任何帮助真的很感激。
凯文
这是db2.php文件的内容:
#<?php
namespace acme\demo\auth\provider;
/**
* Database authentication provider for phpBB3
*
* This is for authentication via the integrated user table
*/
class db2 extends \phpbb\auth\provider\base
{
/** @var \phpbb\db\driver\driver_interface $db */
protected $db;
/**
* Database Authentication Constructor
*
* @param \phpbb\db\driver\driver_interface $db
*/
public function __construct(\phpbb\db\driver\driver_interface $db)
{
$this->db = $db;
}
/**
* {@inheritdoc}
*/
public function login($username, $password)
{
// Auth plugins get the password untrimmed.
// For compatibility we trim() here.
$password = trim($password);
// do not allow empty password
if (!$password)
{
return array(
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'NO_PASSWORD_SUPPLIED',
'user_row' => array('user_id' => ANONYMOUS),
);
}
if (!$username)
{
return array(
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
'user_row' => array('user_id' => ANONYMOUS),
);
}
$username_clean = utf8_clean_string($username);
$sql = 'SELECT user_id, username, user_password, user_passchg, user_pass_convert, user_email, user_type, user_login_attempts
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $this->db->sql_escape($username_clean) . "'";
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
// Successful login... set user_login_attempts to zero...
return array(
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
);
}
}
#
这是services.yml文件的内容:
#services:
auth.provider.db2:
class: acme\demo\auth\provider\db2
arguments:
- '@dbal.conn'
tags:
- { name: auth.provider }
#