golang_微信头像过期失效 - Go语言中文社区

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
}

方案二有个情况
如果用户没有走微信授权的过程,头像就一直无法更新。像在微信里面一般只在第一次进行授权操作,之后就不用再次授权。这样头像无效时该怎么进行更新?
这里可以新加一个判断数据库微信头像url有效的接口,每次登录前进行调用,若头像无效,重新走微信授权。
同理,用户信息缓存在本地时,前端不调用接口的情况,通过该接口进行判断,若头像无效,重新调用登录接口。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43851310/article/details/106607097
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢