如何将自动完成属性添加到MediaWiki登录表单&x27;什么是输入字段?

如何将自动完成属性添加到MediaWiki登录表单&x27;什么是输入字段?,mediawiki,Mediawiki,我正在尝试为客户实施最佳实践建议。我已经实现了从/well-known/change password到登录表单的重定向,但是我不知道如何将autocomplete=“current password”和autocomplete=“new password”属性添加到登录表单的输入字段中。这是一个相当粗糙的方法。它可以在新版本的MediaWiki中停止工作。插入到LocalSetings.php中,或使用以下内容创建新的MediaWiki扩展: // This hook is run every

我正在尝试为客户实施最佳实践建议。我已经实现了从
/well-known/change password
到登录表单的重定向,但是我不知道如何将
autocomplete=“current password”和
autocomplete=“new password”
属性添加到登录表单的输入字段中。

这是一个相当粗糙的方法。它可以在新版本的MediaWiki中停止工作。插入到
LocalSetings.php
中,或使用以下内容创建新的MediaWiki扩展:

// This hook is run every time that a special page is ready to be output.
$wgHooks['SpecialPageAfterExecute'][] = function ( SpecialPage $special, ?string $subPage ): bool {
    // Only Special:ChangeCredentials should be changed.
    if ( $special->getName() !== 'ChangeCredentials' ) {
        return true;
    }
    $out = $special->getOutput();
    // The HTML for the page is already formed.
    // Inject autocomplete='new-password' into input boxes for both the new password and its confirmation.
    $out->mBodytext = preg_replace(
        "/(<input )(.*?name='(password|retype)'.*?>)/",
        '$1autocomplete=\'new-password\' $2',
        $out->mBodytext
    );
    return true;
};
//每次准备输出特殊页面时,都会运行此钩子。
$wgHooks['SpecialPage afterexecute'][]=函数(SpecialPage$special,?字符串$subPage):bool{
//仅特殊:应更改ChangeCredentials。
如果($special->getName()!=='ChangeCredentials'){
返回true;
}
$out=$special->getOutput();
//页面的HTML已形成。
//将autocomplete='new-password'插入新密码及其确认的输入框。
$out->mBodytext=preg\u replace(
"/()/",
“$1自动完成=\'new-password\'$2',
$out->mBodytext
);
返回true;
};

如果你想为你自己的维基做这件事,那么(假设是最新的MediaWiki版本),钩子就是正确的地方

如果您想在MediaWiki上使用它(非常欢迎使用修补程序!请将我添加为审阅者),则
LoginSignupSpecialPage::getFieldDefinitions()
具有用于帐户创建和登录的字段定义。我相信这还包括当您的密码太弱时,您在登录时得到的强制密码更改表单


独立的密码更改表单是由SpecialChangeCredentials类生成的,但是没有表单更改逻辑(一般来说,MediaWiki 1.27+中的登录表单相当抽象,因为不保证站点使用密码),您必须自己添加。它的工作方式与登录表单相同-实现
SpecialChangeCredentials::onAuthChangeFormFields()
,并将所需的任何HTML属性添加到表单描述符数组。

我在
Special:ChangeCredentials/MediaWiki\Auth\PasswordAuthenticationRequest
中看不到当前密码的字段。您使用的是哪个MW版本?在MediaWiki的最新(1.27+)版本中,没有一个可以同时看到当前密码和新密码字段的界面。它们都是由PasswordAuthenticationRequest的
password
字段生成的,但步骤不同。请不要这样做。