用SSH工具进入liunx系统下 使用cd命令:
cd /www/wwwroot/ 网站目录
在网站程序根目下使用:
sudo su root
运行以下代码
使用命令:
composer require hehongyuanlove/flarum-auth-qq
有兼容提示就
composer require hehongyuanlove/flarum-auth-qq:*
安装中需要确保网站运行命令PHP为你网站支持的版本
安装过程中输要输入:YES来执行安装。
完成安装后进入后台启用 “QQ LOGIN”插件 并填入API参数并保存;
接下来就是调试
QQ昵称是中文的,所以总是报错。
后来网站查资料才知道要修改文件
/vendor/flarum/core/src/User下的UserValidator.php中的
'regex:/^[a-z0-9_-]+$/i',
修改为:
regex:/^[-_a-zA-Z0-9\x7f-\xff]+$/i',
接下来进入QQ插件内修改:
vendor/hehongyuanlove/flarum-auth-qq/src/下的QQAuthController.php
找到135行-139行:
原代码:
$random_email = "xxxx." . str::upper(str::random(20)) . "@xxxxx.cn";
$username = $this->UserNameMatch($userinforesult["nickname"]) . str::upper(str::random(4));
$registration
->provide("username", $username)
->provide("nickname", $username)
修改为以下代码
$random_email = str::upper(str::random(3)) . "@qq.com"; // 自动生成3位字符 可自定义
$nickname = $this->UserNameMatch($userinforesult["nickname"]) ; // 获取QQ昵称 支持中文
$username = str::upper(str::random(3)) ; // 自动生成3位字符做为用户名
$registration
->provide("username", $username)
->provide("nickname", $nickname)
第二段 在152行到155行
public function UserNameMatch($str)
{
preg_match_all('/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u', $str, $result); // 随机生成规则 可自定义 :'/([0-9]+)/' 则仅生成0-9之间的数值 这样用户名就可以是全数字
return implode('', $result[0]);
}
结束