Хитрость заключается в создании гибридного процесса auth. Вы регистрируете веб-приложение в собственном домене, авторизуете пользователей для веб-приложения через процесс OAuth для веб-приложений, а затем реализуете механизм, с помощью которого их установленное приложение может получить это разрешение из веб-приложения.
Мое мышление об этом заключается в том, что установленное приложение отправит вашему сайту запрос на ключевую пару. Он получит ключ инициации и ключ авторизации, оба из которых будут храниться в базе данных на веб-сайте для одноразового использования.
Приложение затем будет использовать любой механизм для запуска внешнего браузера, указав его на yourdomain.com/authorizestart.php?initiate=[initate code]. Сайт хранит код в переменной сеанса, а затем отправляет пользователя в Google для аутентификации. Когда аутентификация будет успешной, и Google отправит пользователя обратно с помощью следующего токена, вы сохраните его в записи базы данных, связанной с ключом инициации.
пользователь закрывает браузер, нажимает кнопку «Готово» в вашем приложении, а затем приложение отправляет запрос на yourdomain.com/tokenretrieve.php?authorize=[authorize ключ]
Ваш сайт смотрит токен Google и передает его обратно, приложение завершает процесс Oauth.
Проблема заключается в том, что вы должны делиться «секретом потребителя», который вы создали в процессе регистрации с приложением. Кто-то может декомпилировать его или попытаться захватить его вывод и открыть секретный ключ, который является частью метода шифрования ответов с серверов Google. Тем не менее, как это хуже, чем использование «анонимного» в качестве секретности вашего потребителя?
Вы зарегистрировали свое приложение в Google? – Grace
Я этого не делал. Насколько я знаю, это делается только для веб-приложений (имеющих домен). В моем случае это локальное приложение, установленное на пользовательском компьютере. – Andres