Использование библиотеки Google.Apis.Analytics.v3 в .NET, я делаю аутентификации OAuth2 к API Google Analytics, например:Google API: Как проверить, успешно ли выполнена аутентификация?
string[] scopes = new string[] { AnalyticsService.Scope.Analytics, // view and manage your analytics data
AnalyticsService.Scope.AnalyticsEdit, // edit management actives
AnalyticsService.Scope.AnalyticsManageUsers, // manage users
AnalyticsService.Scope.AnalyticsReadonly}; // View analytics data
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
, scopes
, userName
, CancellationToken.None
, new DatabaseDataStore("Analytics")).Result;
AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Masterpiece"
});
Проблема с этим состоит в том, что в конце концов, я дон 't знать, была ли аутентификация успешной или нет, поскольку я не вижу никакого способа получить какое-либо сообщение из этой реализации. Обычно это работает отлично, и я могу продолжить допрос API. Однако, если я отменяю токен, который я сохранил для этого имени пользователя, то эта реализация не скажет мне, что служба не была аутентифицирована, и когда я пытаюсь допросить API, я получаю сообщение об ошибке.
Как в мире проверить, успешно ли выполнена проверка подлинности, прежде чем я начну обращаться к методам API? Если аутентификация не удалась, я хочу удалить токен отзыва из своего хранилища данных и повторить проверку подлинности, запрашивая разрешение пользователя.
Привет, спасибо за объяснение. Однако мой сценарий несколько отличается. У меня действительно есть try/catch, и он обрабатывает случай, когда пользователь нажимает на отмену. Но в описанном мной сценарии пользователь уже прошел аутентификацию в прошлом, и теперь администратор отменяет один из токенов, но не удаляет их из БД. Когда сайт снова попытается подключиться к GA, он будет использовать отмененный токен, который он найдет в базе данных. Учетные данные.Token возвращает только тот же отозванный токен, который я первоначально отправил, и не выдает ошибку. Http: // скринкаст.com/t/Eum96s3chP – SsjCosty
Ваш databasedatastore должен обрабатывать администратора, который не полностью удаляет токен обновления – DaImTo
Правильно ... но как хранилище данных узнает, что токен отменен? Вы можете отменить токен, вызывая URL-адрес (https://accounts.google.com/o/oauth2/revoke?token={token}), но как хранилище данных проверяет, отменен ли токен или нет? – SsjCosty