如何判断微信授权的头像是否失效
编辑时间:2019-09-04 15:28:44 作者:666666

一、首先我们需要了解两个点:

1.当微信用户授权的头像失效时,返回的是一张图片。

2.微信头像失效时虽然返回的图片的url不一样,但是图片都是同一张,所以他们的散列值(hash)都是一样。

二、理解了上述两点,就跟着以下的步骤走

1.找到微信头像失效时返回的图片,并获取其md5值

$hash = md5(file_get_contents("https://wx.qlogo.cn/mmopen/vi_32/
DYAIOgq83eqeqS6qHGTDwCKvq8H7E6w009CPwVqVnabayODP9l7wbE1xnFW2u28iciceC9kibfiae3EG1kwYxNibdqQ/132"));

2.将业务所需头像的md5值与上面获取的md5值进行对比,如果一致,则是失效图片,对其进行更换或者进行其他操作。

//循环遍历用户信息
foreach ($user_info as &$v) {
    //判断:如果用户头像的hash值等于失效头像的hash值,则使用默认头像
    if (md5(file_get_contents($v['avatar_url'])) == $hash) {
        //默认头像
        $v['avatar_url'] = 'https://image.llljjjjjj.com/default/cover.png';
    }
}

三、注意事项

1.总所周知,file_get_contents() 函数极其消耗资源,效率非常低。所以,这种方法,只适合在数量少的场景下使用。

2.如果微信更换了失效图片,则此方法也会失效,所以尽量使用try catch 将此foreach循环包裹,当微信更换失效头像时,代码下面业务的也能正常运行。

3.需要确保用户头像的url是有效的,否则file_get_contents()函数会报错


 点赞 3
 收藏 0
 分享
来说两句吧
最新评论
    暂无评论
天气预报
万年历
2015年
7月
返回今天

博客声明

本博客属个人所有,不涉及商业目的。遵守中华人民共和国法律法规、中华民族基本道德和基本网络道德规范,尊重有节制的言论自由和意识形态自由,反对激进、破坏、低俗、广告、投机等不负责任的言行。所有转载的文撰写页面章、图片仅用于说明性目的,被要求或认为适当时,将标注署名与来源。避免转载有明确“不予转载”声明的作品。若不愿某一作品被转用,请及时通知本人。对于无版权或自由版权作品,本博客有权进行修改和传播,一旦涉及实质性修改,本博客将对修改后的作品享有相当的版权。二次转载者请再次确认原作者所给予的权力范围。

本博客所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。非经允许,不得用于赢利目的。本博客受中国知识产权、互联网法规和知识共享条例保护和保障,任何人不得进行旨在破坏或牟取私利的行为。本博客声明以简体中文版为准,不对其他语言版本负责。

如有侵权请及时联系我进行处理。邮箱youseeim666@163.com