Пишу небольшое приложение на с++, авторизация oauth2 через браузер. Для standalone рекомендуется использовать redirect_uri как oob. При подтверждении пользователю открывается окно с кодом. Как можно сделать, чтоб пользователю не пришлось копировать код и вставлять его в приложение, а по адресу приложение получило токен и поехало дальше? Я не нашел примеров с использованием oob, все завязаны только на использование localhost'a.
auto replyHandler = new QOAuthHttpServerReplyHandler(this);
oauth2.setReplyHandler(replyHandler);
oauth2.setAuthorizationUrl(QUrl("https://site.ru/oauth/authorize"));
oauth2.setAccessTokenUrl(QUrl("https://site.ru/oauth/token"));
oauth2.setClientIdentifier(QString("client_id"));
oauth2.setClientIdentifierSharedKey(QString("client_secret"));
oauth2.setModifyParametersFunction([](QAbstractOAuth::Stage stage, QVariantMap *parameters) {
(*parameters)["redirect_uri"] = QUrl("urn:ietf:wg:oauth:2.0:oob");
});
connect(&oauth2, &QOAuth2AuthorizationCodeFlow::statusChanged, [=](QAbstractOAuth::Status status) {
if (status == QAbstractOAuth::Status::Granted)
{
qDebug() << "Granted";
}
else
{
qDebug() << "Not granted";
}
});
connect(&oauth2, &QOAuth2AuthorizationCodeFlow::authorizeWithBrowser, &QDesktopServices::openUrl);
oauth2.grant();