微信公众号Access_token不支持并发
lemon-1997 opened this issue · 6 comments
lemon-1997 commented
看了下代码,有重试刷新token机制,如果并发,是不是会重复顶掉之前的token(第一次拿token并发也会出现)。能否抽象Acess_token,调用方自己实现逻辑。
类似下面的代码
type AccessToken interface {
GetAccessToken() (accessToken string, err error)
RefreshAccessToken(accessToken string) (accessToken string, err error)
}
Matrix-X commented
我们晚点试试,谢谢你的提问,欢迎加入我们的企业微信群,一起讨论,谢谢
Matrix-X commented
lemon-1997 commented
你好,Lemon,请试一下这个方法
services.MiniProgramApp.AccessToken.Refresh()
你好,这个方法没看到有加锁的逻辑,如果是并发的情况,重复调用微信的接口,上一个token就会失效。我刚看到代码有抽象access_token,但是好像没有方法取替换
type (
AccessTokenInterface interface {
GetToken(refresh bool) (resToken *response2.ResponseGetToken, err error)
Refresh() AccessTokenInterface
ApplyToRequest(request *http.Request, requestOptions *object.HashMap) (*http.Request, error)
}
)
这是公众号的access_token
type OfficialAccount struct {
*kernel.ServiceContainer
Base *base.Client
AccessToken *auth.AccessToken
.......
}
type AccessToken struct {
*kernel.AccessToken
}
Matrix-X commented
请加企业微信沟通这个问题,谢谢!
ydedev commented
请问下老哥解决了吗,这个问题
Matrix-X commented
请问下老哥解决了吗,这个问题
请用最新的版本,token有自动刷新的功能,同时也增加了token存储和读取可以重载接口