Как остановить сохранение API YouTube OAuth-токена в файле? - PullRequest
0 голосов
/ 14 января 2019

По стечению обстоятельств я обнаружил, что токены OAuth для обновления и доступа хранятся в роуминговой папке пользователя после успешной авторизации.

Есть ли способ прекратить это делать?

Также мне просто любопытно - как Google думает, что это хороший подход для хранения токенов обновления на диске? (особенно не рассказывая об этом пользователю).

Ответы [ 2 ]

0 голосов
/ 14 января 2019

По-видимому (после некоторых экспериментов), если вы не предоставите свое собственное хранилище данных, 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));
    }
}
0 голосов
/ 14 января 2019

На 99,99% уверен, что Google не хранит токены в любом месте.

Пользователь прошел авторизацию с помощью приложения, поэтому то, что приложение делает с этими токенами, находится вне контроля Google (если только вы не говорите, что приложение принадлежало Google). Возможно, вы захотите задать вопрос автору приложения.

...