【发布时间】:2021-08-27 22:37:48
【问题描述】:
我之前开发过一个 OAuth2 应用程序,其逻辑是在旧令牌过期后通过刷新令牌生成新的访问令牌。
现在使用 Google API,我没有遇到同样的事情。我同时收到了访问令牌和刷新令牌,在允许访问令牌过期后,我尝试使用刷新令牌
var myToken = new TokenResponse
{
RefreshToken = sRefreshToken
};
var credentials = new UserCredential(new GoogleAuthorizationCodeFlow(
new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = new ClientSecrets
{
ClientId = clientId,
ClientSecret = clientSecret
}
}), "user", myToken);
service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credentials,
ApplicationName = "XYZ",
});
这样做之后,我似乎可以进行 API 调用。但是我尝试在这样做之后检索访问/刷新令牌:
ACCESS_TOKEN = credentials.Token.AccessToken;
REFRESH_TOKEN = credentials.Token.RefreshToken;
访问令牌和刷新令牌都与旧令牌相同。我以为刷新会完全生成一个新令牌?不是这样吗?
如果访问令牌在 30 分钟后过期,那么您只需要传入刷新令牌(但不会重新生成),那么刷新令牌的意义何在?
【问题讨论】:
标签: oauth-2.0 google-api