C#是否为AuthorizeAsync设置access_type=脱机



我正试图更改对.net客户端lib的旧rest调用,我有两个相关的问题。。。

此页面上的示例应用程序https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth

使用AuthorizeAsync让用户批准授权,然后将凭据保存在某个位置。。。。

稍后,你想做一些离线的事情。,它有以下

UserCredential和AuthorizationCodeFlow会自动处理"刷新"令牌,这只是意味着获得一个新的访问令牌。这是使用一个长期刷新令牌来完成的,您可以随该令牌一起接收如果在授权代码流期间使用access_type=offline参数,则使用访问令牌

我已经用粗体标记了有问题的两条语句。

  1. 如何使用c#客户端库设置此参数?AuthorizeAsync不接受accessType标志
  2. 你甚至需要设置这个(AccessType)吗?我注意到,在批准oauth屏幕后,我收到了accessToken和RefreshToken
  3. 一旦你有了刷新令牌,并且你需要从保存的accesstoken和refreshtoken构建凭据,你需要手动刷新访问令牌吗?或者AuthorizationCodeFlow真的会处理这个问题吗?我需要记住刷新的accessToken吗
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { BooksService.Scope.Books },
"user", CancellationToken.None, new FileDataStore("Books.ListMyLibrary"));
}

上面应该看的第一件事是"用户",这是指不同的用户。FileDataStore默认情况下将凭据存储在计算机上的%appData%文件夹中,每个用户都有自己的凭据文件。我对filedatastore有一个完整的记录。

您不需要担心将其设置为脱机访问或在您的访问令牌过期时请求新的访问令牌,客户端库将为您处理所有这些。

最新更新