使用https://github.com/golang/oauth2的例子很少,但没有一个涵盖刷新令牌的使用。我尝试了很少的方法,但我仍然不满意我的结果。
是否有任何示例代码,或者您可能知道 Github 上的某个项目使用oauth2 lib
作为示例?
答案 0 :(得分:15)
在存储Expiry
参数之前,您无需担心刷新令牌。获得“令牌”后#39;对象,将以下内容存储在您的数据库中:
token.AccessToken
,token.RefreshToken
,token.TokenType
和token.Expiry
在获取时,使用上述参数再次构造令牌对象:
token := new(oauth2.Token)
token.AccessToken = {{ From DataBase }}
token.RefreshToken = {{ From DataBase }}
token.Expiry = {{ From DataBase }}
token.TokenType = {{ From DataBase }}
然后获取您的http客户端:
config.Client(ctx, token)
这将处理刷新令牌。摘录(更多信息:Golang oauth2 client):
客户端使用提供的令牌返回HTTP客户端。令牌将根据需要自动刷新。
唯一的缺点是,不会返回刷新的访问令牌。但它的确有效! Google对刷新令牌的使用次数没有限制。