Использование внешнего URI перенаправления с Google OAuth2 для настольных приложений - PullRequest
0 голосов
/ 18 марта 2020

У меня есть настольное приложение WPF, которое должно быть связано с учетной записью пользователя Google для последующей интеграции с Google Drive. Я использую их Google.Apis.Auth.OAuth2 утилиту для обработки авторизации. Я зарегистрировал свое приложение в консоли Google и добавил идентификатор клиента OAuth2 для Desktop app согласно документации.

Моя проблема в том, что я не вижу, где в консоли я могу добавить / добавить в белый список пользовательский редирект URI для моего приложения - эта опция, кажется, доступна только для веб-приложений, и у моего настольного приложения нет другого выбора, кроме как перенаправить на localhost, что недопустимо. Я попытался переопределить GoogleAuthorizationCodeFlow и передать свой URI непосредственно в

public override AuthorizationCodeRequestUrl CreateAuthorizationCodeRequest(string redirectUri)
        => new GoogleAuthorizationCodeRequestUrl(new Uri(AuthorizationServerUrl))
        {
            ClientId = ClientSecrets.ClientId,
            Scope = string.Join(" ", Scopes),
            RedirectUri = _customRedirectUri,
            State = _state
        };

Но Google, конечно, выплевывает redirect_uri_mismatch , потому что почему бы и нет - я не мог добавить это где-то еще. Я реализовал ту же функциональность для интеграции DropBox, где вы можете указать и внести в белый список страницу перенаправления - я предполагал, что у Google будет что-то похожее, но поле Authorized Redirect URI отсутствует даже для настольных приложений.

Информация об этом кажется очень скудной. Это вообще возможно и чего мне не хватает?

1 Ответ

1 голос
/ 19 марта 2020

В качестве последней попытки я создал учетные данные другого типа (веб-приложение), где я мог предоставить свой URI перенаправления, и он работал таким образом. Документация немного сбивает с толку в этом отношении. Для таких приложений предлагается использовать профиль Desktop, но в этом случае у вас нет выбора для перенаправления страниц.

...