golang_微信头像过期无效的判定

背景

微信用户更新头像,原有的头像url会失效,这时需要对失效的头像做一个处理。

方案一

微信官方文档中 授权后接口调用有下列描述:

请注意,在用户修改微信头像后,旧的微信头像 URL 将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免微信头像 URL 失效后的异常情况。

这里的建议是在本地服务器存储一遍用户头像,这样就不会产生用户头像失效的情况。同时默认用户的头像为第一次绑定时的头像。

方案二

判断用户头像失效的状态,在调用微信授权时,更新头像为获取的最新用户头像。

// url 一个无效头像
url := “http://wx.qlogo.cn/mmopen/kr9ShguI1uzOvkB15VXrdPWegpCW6OHd9sbdgPmicVTIMibT3bMd226KZb4ibv1XQDjV8lH0DdpjZRQ6vkO47zMibjU8cEQWGhrD/0

在这里插入图片描述

// url2 一个正常头像地址
url2 := ”https://wx.qlogo.cn/mmopen/vi_32/fvicdicI5zNc0xEYxhxp77qOOawaBVJ9sT01XJVcppvcnLIibOm3WlzHGkVYkfdoEnibHviclpib7AEZFF9kxWTqH29g/132

在这里插入图片描述
这里根据返回头部里的X-Errno字段进行判断是否有效。

// isValidAvatar 验证当前头像是否有效
func isValidAvatar(url string) bool {
	header, err := http.Get(url)
	if err != nil || header.Header["X-Errno"] != nil {
		return false
	}
	return true
}

todo

如果用户没有走微信授权的过程,头像就一直无法更新。像在微信里面一般只在第一次进行授权操作,之后就不用再次授权,这样头像无效时该怎么进行更新?
需要定时任务去更新用户头像?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章