Класс QAbstractOAuth
Класс QAbstractOAuth является основой всех реализаций методов аутентификации OAuth. Подробнее...
| Заголовок: | #include <QAbstractOAuth> |
| CMake: | find_package(Qt6 COMPONENTS Networkauth REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Networkauth) |
| qmake: | QT += networkauth |
| С момента: | Qt 5.8 |
| Наследует: | QObject |
| Наследуется: |
Типы публичного доступа
| перечисление | ContentType { WwwFormUrlEncoded, Json } |
| перечисление | Error { NoError, NetworkError, ServerError, OAuthTokenNotFoundError, OAuthTokenSecretNotFoundError, OAuthCallbackNotVerified } |
| перечисление | Stage { Запрос временных учетных данных, Запрос авторизации, Запрос доступа, Обновление токена доступа } |
| перечисление | Status { Неавторизован, Получены временные учетные данные, Авторизован, Обновление токена } |
Свойства
- authorizationUrl : QUrl
- contentType : QAbstractOAuth::ContentType
- extraTokens : const QVariantMap
- status : const Status
Функции публичного доступа
| виртуальный | ~QAbstractOAuth() |
| QUrl | authorizationUrl() const |
| QString | clientIdentifier() const |
| QAbstractOAuth::ContentType | contentType() const |
| виртуальный QNetworkReply * | deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
| QVariantMap | extraTokens() const |
| виртуальный QNetworkReply * | get(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
| виртуальный QNetworkReply * | head(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
| QAbstractOAuth::ModifyParametersFunction | modifyParametersFunction() const |
| QNetworkAccessManager * | networkAccessManager() const |
| виртуальный QNetworkReply * | post(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
| виртуальный void | prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) = 0 |
| виртуальный QNetworkReply * | put(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
| QAbstractOAuthReplyHandler * | replyHandler() const |
| void | setAuthorizationUrl(const QUrl &url) |
| void | setClientIdentifier(const QString &clientIdentifier) |
| void | setContentType(QAbstractOAuth::ContentType contentType) |
| void | setModifyParametersFunction(const QAbstractOAuth::ModifyParametersFunction &modifyParametersFunction) |
| void | setNetworkAccessManager(QNetworkAccessManager *networkAccessManager) |
| void | setReplyHandler(QAbstractOAuthReplyHandler *handler) |
| void | setToken(const QString &token) |
| QAbstractOAuth::Status | status() const |
| QString | token() const |
Слот публичного доступа
| виртуальный void | grant() = 0 |
Сигналы
| void | authorizationUrlChanged(const QUrl &url) |
| void | authorizeWithBrowser(const QUrl &url) |
| void | clientIdentifierChanged(const QString &clientIdentifier) |
| void | contentTypeChanged(QAbstractOAuth::ContentType contentType) |
| void | extraTokensChanged(const QVariantMap &tokens) |
| void | granted() |
| void | statusChanged(QAbstractOAuth::Status status) |
| void | tokenChanged(const QString &token) |
Защищённые функции
| QString | callback() const |
| виртуальный void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters) |
| void | setStatus(QAbstractOAuth::Status status) |
Статические защищённые члены
| QByteArray | generateRandomString(quint8 length) |
Подробное описание
Класс определяет базовый интерфейс классов аутентификации OAuth. Наследуя этот класс, вы можете создавать пользовательские методы аутентификации для различных веб-сервисов.
Он также содержит некоторые функции для упрощения процесса реализации различных потоков аутентификации.
Документация по типам членов
перечисление QAbstractOAuth::ContentType
Указывает MIME Content-Type методов POST в авторизованных вызовах.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractOAuth::ContentType::WwwFormUrlEncoded |
0 |
Использует формат application/x-www-form-urlencoded. |
QAbstractOAuth::ContentType::Json |
1 |
Использует формат application/json. |
enum class QAbstractOAuth::Error
Указывает последнюю полученную ошибку.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractOAuth::Error::NoError |
0 |
Ошибка не произошла. |
QAbstractOAuth::Error::NetworkError |
1 |
Не удалось подключиться к серверу. |
QAbstractOAuth::Error::ServerError |
2 |
Сервер ответил на запрос с ошибкой. |
QAbstractOAuth::Error::OAuthTokenNotFoundError |
3 |
Ответ сервера на запрос токена не содержит идентификатора токена. |
QAbstractOAuth::Error::OAuthTokenSecretNotFoundError |
4 |
Ответ сервера на запрос токена не содержит секрета токена. |
QAbstractOAuth::Error::OAuthCallbackNotVerified |
5 |
Сервер авторизации не проверил предоставленный в запросе callback URI. Это обычно происходит, когда предоставленный callback не соответствует callback, предоставленному при регистрации клиента. |
enum class QAbstractOAuth::Stage
Идентифицирует этап аутентификации. Он передаётся в modifyParametersFunction, чтобы тот мог вносить различные изменения в параметры при каждом вызове во время процесса аутентификации.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractOAuth::Stage::RequestingTemporaryCredentials |
0 |
Подготовка запроса временных учетных данных. |
QAbstractOAuth::Stage::RequestingAuthorization |
1 |
Подготовка URL для получения разрешения на авторизацию. |
QAbstractOAuth::Stage::RequestingAccessToken |
2 |
Подготовка запроса токена. |
QAbstractOAuth::Stage::RefreshingAccessToken |
3 |
Подготовка обновления токена доступа. |
enum class QAbstractOAuth::Status
Указывает текущий статус аутентификации.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractOAuth::Status::NotAuthenticated |
0 |
Токен не был получен. |
QAbstractOAuth::Status::TemporaryCredentialsReceived |
1 |
Временные учетные данные получены, этот статус используется в некоторых методах аутентификации OAuth. |
QAbstractOAuth::Status::Granted |
2 |
Учетные данные токена получены и проверены, разрешены запросы с аутентификацией. |
QAbstractOAuth::Status::RefreshingToken |
3 |
Запрошены новые учетные данные токена. |
Документация по свойствам
authorizationUrl : QUrl
Это свойство содержит URL, используемый для запроса авторизации владельца ресурса, как описано в: Протокол OAuth 1.0: Авторизация владельца ресурса
Функции доступа:
| QUrl | authorizationUrl() const |
| void | setAuthorizationUrl(const QUrl &url) |
Сигнал уведомления:
| void | authorizationUrlChanged(const QUrl &url) |
contentType : QAbstractOAuth::ContentType
Это свойство содержит Content-Type для использования при отправке параметров авторизации.
Это свойство управляет форматированием параметров при отправке с помощью запроса POST. Также добавляется соответствующий заголовок.
Функции доступа:
| QAbstractOAuth::ContentType | contentType() const |
| void | setContentType(QAbstractOAuth::ContentType contentType) |
Сигнал уведомления:
| void | contentTypeChanged(QAbstractOAuth::ContentType contentType) |
[read-only] extraTokens : const QVariantMap
Это свойство содержит дополнительные токены, полученные от сервера.
Функции доступа:
| QVariantMap | extraTokens() const |
Сигнал уведомления:
| void | extraTokensChanged(const QVariantMap &tokens) |
[read-only] status : const Status
Это свойство содержит текущий статус аутентификации.
Функции доступа:
| QAbstractOAuth::Status | status() const |
Сигнал уведомления:
| void | statusChanged(QAbstractOAuth::Status status) |
Документация по функциям-членам
[signal] void QAbstractOAuth::authorizeWithBrowser(const QUrl &url)
Этот сигнал генерируется, когда url, сгенерированный функцией resourceOwnerAuthorization(), готов к использованию в веб-браузере, чтобы позволить приложению действовать от имени пользователя.
См. также resourceOwnerAuthorization().
[pure virtual slot] void QAbstractOAuth::grant()
Переопределите эту функцию, чтобы реализовать соответствующий поток аутентификации в дочерних классах. Код клиента вызывает эту функцию, чтобы начать процесс аутентификации. Это может потребовать взаимодействия с пользователем, например, запроса разрешения пользователя через веб-браузер. После успешной аутентификации должен быть выпущен сигнал granted; это оповещает о том, что учетные данные готовы к использованию в запросах с аутентификацией.
[signal] void QAbstractOAuth::granted()
Этот сигнал генерируется, когда поток авторизации завершается успешно.
[virtual] QAbstractOAuth::~QAbstractOAuth()
Уничтожает абстрактный OAuth.
QUrl QAbstractOAuth::authorizationUrl() const
Возвращает URL-адрес запроса авторизации.
Примечание: Функция-геттер для свойства authorizationUrl.
См. также setAuthorizationUrl().
[protected] QString QAbstractOAuth::callback() const
Возвращает текущую строку callback, соответствующую текущему обработчику ответа. Возвращаемая строка — это строка, отправленная серверу для указания callback URI или слово, идентифицирующее альтернативный метод в устройствах без графического интерфейса.
См. также replyHandler() и setReplyHandler().
QString QAbstractOAuth::clientIdentifier() const
Возвращает текущий идентификатор клиента, используемый в процессе аутентификации.
Примечание: Функция-геттер для свойства clientIdentifier.
См. также setClientIdentifier().
QAbstractOAuth::ContentType QAbstractOAuth::contentType() const
Возвращает текущий Content-Type, используемый в запросах с аутентификацией.
Примечание: Функция-геттер для свойства contentType.
См. также setContentType() и post().
[pure virtual] QNetworkReply *QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Отправляет аутентифицированный запрос DELETE и возвращает новый QNetworkReply. url и parameters используются для создания запроса.
См. также: Hypertext Transfer Protocol -- HTTP/1.1: DELETE
Примечание: Данная функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
QVariantMap QAbstractOAuth::extraTokens() const
Возвращает дополнительные токены, полученные от сервера во время аутентификации.
Примечание: Функция-геттер для свойства extraTokens.
См. также extraTokensChanged().
[static protected] QByteArray QAbstractOAuth::generateRandomString(quint8 length)
Генерирует случайную строку, которая может использоваться в качестве состояния или случайного числа. Параметр length определяет размер сгенерированной строки.
См. также: The OAuth 1.0 Protocol: Nonce and Timestamp.
[pure virtual] QNetworkReply *QAbstractOAuth::get(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Отправляет аутентифицированный запрос GET и возвращает новый QNetworkReply. url и parameters используются для создания запроса.
См. также: Hypertext Transfer Protocol -- HTTP/1.1: GET
Примечание: Данная функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[pure virtual] QNetworkReply *QAbstractOAuth::head(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Отправляет аутентифицированный запрос HEAD и возвращает новый QNetworkReply. url и parameters используются для создания запроса.
См. также: Hypertext Transfer Protocol -- HTTP/1.1: HEAD
Примечание: Данная функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
QAbstractOAuth::ModifyParametersFunction QAbstractOAuth::modifyParametersFunction() const
Возвращает текущую функцию модификации параметров.
См. также setModifyParametersFunction() и Stage.
QNetworkAccessManager *QAbstractOAuth::networkAccessManager() const
Возвращает текущий менеджер сетевого доступа, используемый для отправки запросов на сервер во время потоков аутентификации или для выполнения аутентификационных вызовов.
См. также setNetworkAccessManager() и QNetworkAccessManager.
[pure virtual] QNetworkReply *QAbstractOAuth::post(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Отправляет аутентифицированный запрос POST и возвращает новый QNetworkReply. url и parameters используются для создания запроса.
См. также: Hypertext Transfer Protocol -- HTTP/1.1: POST
Примечание: Данная функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[pure virtual, since 5.13] void QAbstractOAuth::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray())
Авторизует заданный request, добавив заголовок и body, необходимые для аутентифицированных запросов.
verb должен быть допустимым HTTP-глаголом и совпадать с глаголом, используемым для отправки request.
Эта функция была добавлена в Qt 5.13.
[pure virtual] QNetworkReply *QAbstractOAuth::put(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Отправляет аутентифицированный запрос PUT и возвращает новый QNetworkReply. url и parameters используются для создания запроса.
См. также: Hypertext Transfer Protocol -- HTTP/1.1: PUT
Примечание: Данная функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
QAbstractOAuthReplyHandler *QAbstractOAuth::replyHandler() const
Возвращает обработчик ответа, который используется в данный момент.
См. также setReplyHandler() и QAbstractOAuthReplyHandler.
[virtual protected] void QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters)
Строит URL для авторизации владельца ресурса для использования в веб-браузере: url используется в качестве базового URL, а запрос создаётся с использованием parameters. После подготовки URL, сигнал authorizeWithBrowser() будет выпущен с сгенерированным URL.
См. также authorizeWithBrowser().
void QAbstractOAuth::setAuthorizationUrl(const QUrl &url)
Устанавливает URL запроса авторизации в url. Этот адрес будет использоваться для предоставления пользователю возможности предоставить приложению возможность выполнения аутентифицированных вызовов от имени пользователя.
Примечание: Функция-сеттер для свойства authorizationUrl.
См. также authorizationUrl().
void QAbstractOAuth::setClientIdentifier(const QString &clientIdentifier)
Устанавливает текущий идентификатор клиента в clientIdentifier.
Примечание: Функция-сеттер для свойства clientIdentifier.
См. также clientIdentifier().
void QAbstractOAuth::setContentType(QAbstractOAuth::ContentType contentType)
Устанавливает текущий Content-Type в contentType.
Примечание: Функция-сеттер для свойства contentType.
См. также contentType().
void QAbstractOAuth::setModifyParametersFunction(const QAbstractOAuth::ModifyParametersFunction &modifyParametersFunction)
Устанавливает функцию модификации параметров modifyParametersFunction. Эта функция используется для настройки параметров, отправляемых на сервер на определённой стадии авторизации. Количество вызовов этой функции зависит от используемого потока во время аутентификации.
См. также modifyParametersFunction() и Stage.
void QAbstractOAuth::setNetworkAccessManager(QNetworkAccessManager *networkAccessManager)
Устанавливает менеджер сети в networkAccessManager. QAbstractOAuth не принимает владение networkAccessManager. Если не установлен пользовательский менеджер сетевого доступа, используется внутренний менеджер сети. Этот менеджер сети будет использоваться для отправки запроса на сервер аутентификации и аутентифицированного запроса на веб-сервис.
См. также networkAccessManager() и QNetworkAccessManager.
void QAbstractOAuth::setReplyHandler(QAbstractOAuthReplyHandler *handler)
Устанавливает текущий обработчик ответа в handler.
Примечание: Не принимает владение handler.
См. также replyHandler().
[protected] void QAbstractOAuth::setStatus(QAbstractOAuth::Status status)
Устанавливает текущий статус в status. Этот метод предназначен для использования классами, основанными на QAbstractOAuth.
См. также status().
void QAbstractOAuth::setToken(const QString &token)
Устанавливает токен, используемый для подписи аутентифицированных запросов, в token.
Примечание: Функция-сеттер для свойства token.
См. также token().
QAbstractOAuth::Status QAbstractOAuth::status() const
Возвращает текущий статус аутентификации.
Примечание: Функция-геттер для свойства status.
См. также setStatus() и Status.
QString QAbstractOAuth::token() const
Возвращает токен, используемый для подписи аутентифицированных запросов.
Примечание: Функция-геттер для свойства token.
См. также setToken().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qabstractoauth.html