私は本当にこれでいくつかの助けを使用することができます。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/
下の両方のファイルの内容のコピー。
ドキュメントによると、Access Control Panel(ACP)の認証部分の認証方法のリストにdb2が表示されるはずですが、何も表示されません。私はフォーラムのキャッシュをフラッシュし、ブラウザのキャッシュなどを無駄にしました。
何か不足していますか?どんな助けも本当に感謝しています。
ケビン
これはdb2.phpファイルの内容です:
# :これはservices.ymlファイルの内容である #<?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:
auth.provider.db2:
class: acme\demo\auth\provider\db2
arguments:
- '@dbal.conn'
tags:
- { name: auth.provider }
#