自建微信时光机遭遇身份验证错误的解决办法

1、前言

更新handsome9.0.2版本后突然发现自建的微信时光机无法使用,各项信息均正确,但依旧提示身份验证错误。

2、排查问题

经过各种定位问题,排查过后发现是新版本修改了时光机Time.php的源代码,代码内使用了self::md5()这个函数去加密time_code导致和自建微信时光机代码使用的md5加密代码不一致,导致两者对比失败,出现身份验证的错误

以下为9.0.2版本的Time.phpUtil.php文件
2023-04-07 22.28.34.png

2023-04-07 22.26.22.png

3、修改办法

Time.php文件中133行IsTimeCodeCorrect函数中的第二参数改为true,保存后即可。

4、小结

这次定位修改问题的过程中走了许多弯路,原因还是在于不怎么懂php语言的语法,还有就是对编辑工具不熟悉,用vscode直接全局搜索对于的返回值就能直接找到相关文件的代码行,直接修改后就好,省时又方便!

以下是handsome主题8.xTime.php的相关代码段,读者可以自己去比对学习

源文件相关代码行大致在 90-110

//从微信公众号发送说说说
            //获取必要的参数

            if (!empty($_POST['content']) && !empty($_POST['time_code']) && !empty($_POST['cid']) && !empty($_POST['token'])){
                $cid = $_POST['cid'];
                $thisText=$_POST['content']; //发送的内容
                $time_code= $_POST['time_code'];//用来检验是否是博客主人
                $token= $_POST['token'];//用来表示调用这个接口的来源,wexin表示微信公众号,crx表示浏览器扩展
                $msg_type = $_POST['msg_type'];
                $options = mget();
                //身份验证
                if ($time_code == md5($options->time_code) && trim($options->time_code)!==""){//验证成功
                    if ($msg_type == "mixed_post"){//发送博文
                      //略...
最后修改:2023 年 04 月 07 日
如果觉得我的文章对你有用,请随意赞赏