В нашем приложении мы используем REST API Google Drive.Для аутентификации мы используем Xamarin.Auth со следующей конфигурацией
var authenticator = new OAuth2Authenticator(<our client ID>,
null,
"https://www.googleapis.com/auth/drive",
"https://accounts.google.com/o/oauth2/v2/auth",
<our redirect url>,
"https://www.googleapis.com/oauth2/v4/token",
null,
true);
Логин представлен с использованием
var loginPresenter = new OAuthLoginPresenter();
loginPresenter.Login(authenticator);
(это не фактический код, так как авторизация инкапсулированав классе вводятся аутентификатор и ведущий, но в основном это то, что мы делаем).
Это откроет форму входа в браузере и позволит пользователю войти, в результате чего форма перезвонит нашему приложению с токеном OAuth2.Все работает как шарм.
Наш идентификатор клиента был создан с использованием хэша нашего отладочного хранилища ключей.Согласно документации и другим вопросам (см. здесь и здесь ), это должно перестать работать в конфигурациях выпуска, когда приложение подписано с другим хранилищем ключей.В любом случае, подписав приложение с нашим внутренним хранилищем ключей AdHoc, форма входа по-прежнему работает без проблем.На самом деле я не вижу, как это не должно быть.В конце концов, все, что мы делаем, это открываем веб-сайт в элементе управления системного браузера, поэтому я не понимаю, как веб-сайт должен получать хэш наших приложений.
Поскольку в связанных вопросах отсутствуют детали, я не вижу, насколько они отличаются от нашей ситуации, но я почему-то предположил, что Google OAuth выполняет какую-то черную магию, чтобы гарантировать совпадение хеша.Есть ли причина, по которой это работает для нас?Можем ли мы ожидать, что он продолжит работать после загрузки в Google Play, или есть риск, что он перестанет работать?