自建微信时光机遭遇身份验证错误的解决办法
1、前言
更新handsome9.0.2版本后突然发现自建的微信时光机无法使用,各项信息均正确,但依旧提示身份验证错误。
2、排查问题
经过各种定位问题,排查过后发现是新版本修改了时光机Time.php
的源代码,代码内使用了self::md5()
这个函数去加密time_code导致和自建微信时光机代码使用的md5加密代码不一致,导致两者对比失败,出现身份验证的错误
以下为9.0.2版本的Time.php
和Util.php
文件
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"){//发送博文
//略...
11 条评论
9.2.1版本失效了OωO
我没有更新版本哦。可能后续版本在时光机这块有更新吧
9.2.1版本和你改动9.0.2的内容是一样的 但是还是身份认证错误OωO
等我有空再去研究下吧
感谢!!!(ノ°ο°)ノ
测试过了, 新版本不用改主题文件就能用,应该是作者修复了
我也发现了 那就是我安装出问题了,但是没安装教程参考
大佬,我用了你的方法还是不行,可以加QQ咨询一下吗
1399853961
大佬,我用了你的方法还是不行,可以加个好友资讯一下吗,有偿也可以
感谢大佬的回复,这就去实践一下