# 自建微信时光机遭遇身份验证错误的解决办法 ## 1、前言 更新handsome9.0.2版本后突然发现自建的微信时光机无法使用,各项信息均正确,但依旧提示身份验证错误。 ## 2、排查问题 经过各种定位问题,排查过后发现是新版本修改了时光机`Time.php`的源代码,代码内使用了`self::md5()`这个函数去加密time_code导致和自建微信时光机代码使用的md5加密代码不一致,导致两者对比失败,出现身份验证的错误 以下为9.0.2版本的`Time.php`和`Util.php`文件 ![2023-04-07 22.28.34.png][1] ![2023-04-07 22.26.22.png][2] ## 3、修改办法 将`Time.php`文件中133行`IsTimeCodeCorrect`函数中的第二参数改为`true`,保存后即可。 ## 4、小结 这次定位修改问题的过程中走了许多弯路,原因还是在于不怎么懂php语言的语法,还有就是对编辑工具不熟悉,用vscode直接全局搜索对于的返回值就能直接找到相关文件的代码行,直接修改后就好,省时又方便! 以下是handsome主题8.x`Time.php`的相关代码段,读者可以自己去比对学习 *源文件相关代码行大致在 90-110* ```php //从微信公众号发送说说说 //获取必要的参数 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"){//发送博文 //略... ``` [1]: /usr/uploads/2023/04/2158121076.png [2]: /usr/uploads/2023/04/2597848248.png 最后修改:2024 年 06 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏
15 条评论
实验数据可增加误差分析以提高严谨性。
你的文章充满了创意,真是让人惊喜。 https://www.4006400989.com/qyvideo/24286.html
你的文章内容非常精彩,让人回味无穷。http://www.hzrsdt.com
按照博主的办法,将true改为false,现在终于好了
9.2.1版本失效了OωO
我没有更新版本哦。可能后续版本在时光机这块有更新吧
9.2.1版本和你改动9.0.2的内容是一样的 但是还是身份认证错误OωO
等我有空再去研究下吧
感谢!!!(ノ°ο°)ノ
测试过了, 新版本不用改主题文件就能用,应该是作者修复了
我也发现了 那就是我安装出问题了,但是没安装教程参考
大佬,我用了你的方法还是不行,可以加QQ咨询一下吗
1399853961
大佬,我用了你的方法还是不行,可以加个好友资讯一下吗,有偿也可以
感谢大佬的回复,这就去实践一下