0

巧合的是,我发现刷新和访问 OAuth 令牌在成功授权后存储在用户的漫游文件夹中。

有没有办法停止这样做?

我也很好奇 - 谷歌如何认为它是在磁盘上存储刷新令牌的好方法?(尤其是不告诉用户)。

4

2 回答 2

0

99.99% 确定 Google不会在任何地方存储任何令牌。

用户已使用应用程序进行身份验证,因此该应用程序对这些令牌的操作不受 Google 的控制(除非您说该应用程序是 Google 的应用程序之一)。您可能想向应用程序作者提出问题。

于 2019-01-14T16:41:29.260 回答
0

显然(经过一些试验)如果您不提供自己的数据存储,API 会将其保存在您的 Windows 漫游文件夹中\AppData\Roaming\Google.Apis.Auth

但是,如果您提供“空”数据存储,则不会发生这种情况

这是代码:

UserCredential credential = null;

var ds = new YoutubeDataStore();

using (var stream = new FileStream("client_id.json", FileMode.Open, FileAccess.Read))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { YouTubeService.Scope.YoutubeUpload, },
        "user",
        CancellationToken.None, 
        ds
    );
}

数据存储:

public class YoutubeDataStore : IDataStore
{
    public Task ClearAsync()
    {
        return Task.FromResult<object>(null);
    }

    public Task DeleteAsync<T>(string key)
    {
        return Task.FromResult<T>(default(T));
    }

    public Task<T> GetAsync<T>(string key)
    {
        return Task.FromResult<T>(default(T));
    }

    public Task StoreAsync<T>(string key, T value)
    {
        return Task.FromResult<T>(default(T));
    }
}
于 2019-01-14T20:28:46.597 回答