Как проверить срок действия аккаунта Сервиса Google - PullRequest
0 голосов
/ 06 апреля 2019

Я создаю приложение с Xamarin.forms, которое загружает изображения в определенную папку определенного диска Google.Для этого я использую сервисную учетную запись.Вот код для авторизации учетной записи службы:

    private async Task<bool> AuthenticateServiceAccountAsync()
    {
        var serviceAccount = await GetFirstResourceStringWithName(_ServiceAccountKey);
        if(serviceAccount == null)
        {
            await Application.Current.MainPage.DisplayExceptionAlert(new Exception("Service account key not found. Unable to authenticate."));
            return false;
        }

        string[] scopes = new string[] { DriveService.Scope.Drive };

        try
        {
            GoogleCredential credential = GoogleCredential.FromJson(serviceAccount)
                     .CreateScoped(scopes);

            _DriveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "MyAppName"
            });

            return true;
        }
        catch(Exception e)
        {
            await Application.Current.MainPage.DisplayExceptionAlert(
                e,
                "No se pudo inicializar la cuenta de servicio.");
            return false;
        }
    }

Работает безупречно, но я не знаю, как проверить истечение срока действия, токены не видны ни в GoogleCredential, ни в DriveService типах.

Ну, это не совсем так, можно получить токен с GoogleCredential.UnderlyingCredential.GetAccessTokenForRequestAsync(), но это только строка токена без информации о времени истечения, насколько я могу судить.Кажется бесполезным в этих обстоятельствах.

Должен ли я просто заполнить поле DateTime и проверить, прошел ли час с момента аутентификации учетной записи службы *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...