QAbstractOAuth Class
QAbstractOAuth クラスは、OAuth 認証メソッドのすべての実装のベースです。詳細...
Header: | #include <QAbstractOAuth> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake: | QT += networkauth |
Inherits: | QObject |
Inherited By: |
パブリックな型
enum class | ContentType { WwwFormUrlEncoded, Json } |
enum class | Error { NoError, NetworkError, ServerError, OAuthTokenNotFoundError, OAuthTokenSecretNotFoundError, OAuthCallbackNotVerified } |
enum class | Stage { RequestingTemporaryCredentials, RequestingAuthorization, RequestingAccessToken, RefreshingAccessToken } |
enum class | Status { NotAuthenticated, TemporaryCredentialsReceived, Granted, RefreshingToken } |
プロパティ
- authorizationUrl : QUrl
- contentType : QAbstractOAuth::ContentType
- extraTokens : const QVariantMap
- status : const Status
パブリック関数
virtual | ~QAbstractOAuth() |
QUrl | authorizationUrl() const |
QString | clientIdentifier() const |
QAbstractOAuth::ContentType | contentType() const |
virtual QNetworkReply * | deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
QVariantMap | extraTokens() const |
virtual QNetworkReply * | get(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
virtual QNetworkReply * | head(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
QAbstractOAuth::ModifyParametersFunction | modifyParametersFunction() const |
QNetworkAccessManager * | networkAccessManager() const |
virtual QNetworkReply * | post(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
virtual void | prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) = 0 |
virtual 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 |
パブリックスロット
virtual 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 | requestFailed(const QAbstractOAuth::Error error) |
void | statusChanged(QAbstractOAuth::Status status) |
void | tokenChanged(const QString &token) |
保護された関数
QString | callback() const |
virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters) |
void | setStatus(QAbstractOAuth::Status status) |
静的プロテクトメンバ
QByteArray | generateRandomString(quint8 length) |
詳細説明
このクラスは OAuth 認証クラスの基本的なインターフェイスを定義します。このクラスを継承することで、さまざまなウェブサービス用のカスタム認証メソッドを作成することができます。
また、さまざまな認証フローを実装しやすくするための関数もいくつか含まれています。
メンバ型の説明
enum class QAbstractOAuth::ContentType
認証されたコールにおける POST メソッドの MIME Content-Type を表します。
定数 | 値 | 説明 |
---|---|---|
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 | 認可サーバーがリクエストに指定されたコールバックURIを検証していない。これは通常、提供されたコールバックがクライアント登録時に提供されたコールバックと一致しない場合に起こります。 |
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 | 新しいトークン認証情報が要求されました。 |
プロパティ Documentation
authorizationUrl : QUrl
このプロパティはOAuth 1.0 プロトコルリソース所有者認証
アクセス関数:
QUrl | authorizationUrl() const |
void | setAuthorizationUrl(const QUrl &url) |
Notifier シグナル
void | authorizationUrlChanged(const QUrl &url) |
contentType : QAbstractOAuth::ContentType
このプロパティは、認証パラメータを送信する際に使用する Content-Type を保持します。
このプロパティは、POST リクエストで送信されるパラメータがどのようにフォーマットされるかを制御します。適切なヘッダも追加されます。
アクセス関数
QAbstractOAuth::ContentType | contentType() const |
void | setContentType(QAbstractOAuth::ContentType contentType) |
Notifier シグナル:
void | contentTypeChanged(QAbstractOAuth::ContentType contentType) |
[read-only]
extraTokens : const QVariantMap
このプロパティは、サーバーから受信した余分なトークンを保持します。
アクセス関数:
QVariantMap | extraTokens() const |
Notifier シグナル:
void | extraTokensChanged(const QVariantMap &tokens) |
[read-only]
status : const Status
このプロパティは現在の認証状態を保持します。
アクセス関数:
QAbstractOAuth::Status | status() const |
Notifier シグナル:
void | statusChanged(QAbstractOAuth::Status status) |
メンバ関数ドキュメント
[virtual noexcept]
QAbstractOAuth::~QAbstractOAuth()
抽象 OAuth を破棄します。
QUrl QAbstractOAuth::authorizationUrl() const
認証リクエストURLを返します。
注意: authorizationUrl プロパティのゲッター関数です。
setAuthorizationUrl()も参照してください 。
[signal]
void QAbstractOAuth::authorizeWithBrowser(const QUrl &url)
このシグナルは、resourceOwnerAuthorization() によって生成されたurl をウェブブラウザで使用し、アプリケーションがユーザーになりすます準備ができたときに発行されます。
resourceOwnerAuthorization()も参照 。
[protected]
QString QAbstractOAuth::callback() const
現在のリプライ・ハンドラに対応するコールバック文字列を返します。返される文字列は、コールバックURIを指定するためにサーバーに送信された文字列、またはヘッドレスデバイスにおける代替メソッドを示す単語です。
replyHandler() およびsetReplyHandler()も参照 。
QString QAbstractOAuth::clientIdentifier() const
認証処理で使用されている現在のクライアント識別子を返します。
注意: プロパティ clientIdentifier のゲッター関数です。
setClientIdentifier()も参照 。
QAbstractOAuth::ContentType QAbstractOAuth::contentType() const
認証された呼び出しで使用されている現在の Content-Type を返す。
注意: プロパティ contentType のゲッター関数。
setContentType() およびpost() も参照 。
[pure virtual invokable]
QNetworkReply *QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
認証済みDELETE要求を送信し、新しいQNetworkReply を返す。url とparameters はリクエストの作成に使用される。
も参照のこと:ハイパーテキスト転送プロトコル - HTTP/1.1:DELETE
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QVariantMap QAbstractOAuth::extraTokens() const
認証時にサーバから受け取ったエクストラトークンを返します。
注意 : extraTokens プロパティのゲッター関数です。
extraTokensChanged()も参照してください 。
[static protected]
QByteArray QAbstractOAuth::generateRandomString(quint8 length)
ステートまたは nonce として使用可能なランダム文字列を生成します。パラメータlength は、生成される文字列のサイズを決定します。
こちらもご覧ください:OAuth 1.0 プロトコル:NonceとTimestamp。
注意:この関数はスレッドセーフです。
[pure virtual invokable]
QNetworkReply *QAbstractOAuth::get(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
認証されたGETリクエストを送信し、新しいQNetworkReply を返す。url とparameters はリクエストの作成に使用される。
参照:ハイパーテキスト転送プロトコル - HTTP/1.1 も参照のこと:GET
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[pure virtual slot]
void QAbstractOAuth::grant()
この関数をオーバーライドすることで、対応する認証フローをサブクラスで実装することができます。クライアントコードはこの関数を呼び出し、認証ワークフローを開始します。例えば、ウェブブラウザを経由してユーザに認証を求めるような場合です。認証が成功すると、granted() を発行します。これは、認証されたコールでクレデンシャルを使用する準備ができたことを通知するものです。
[signal]
void QAbstractOAuth::granted()
このシグナルは、認証フローが正常に終了したときに発行される。
[pure virtual invokable]
QNetworkReply *QAbstractOAuth::head(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
認証されたHEADリクエストを送り、新しいQNetworkReply を返す。url とparameters はリクエストの作成に使用される。
も参照のこと:ハイパーテキスト転送プロトコル - HTTP/1.1 も参照のこと:HEAD
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QAbstractOAuth::ModifyParametersFunction QAbstractOAuth::modifyParametersFunction() const
現在のパラメータ変更関数を返します。
setModifyParametersFunction() およびStageも参照して ください。
QNetworkAccessManager *QAbstractOAuth::networkAccessManager() const
認証フロー中のサーバへのリクエスト送信や、認証呼び出しに使用されている 現在のネットワークアクセスマネージャを返します。
setNetworkAccessManager() およびQNetworkAccessManager も参照 。
[pure virtual invokable]
QNetworkReply *QAbstractOAuth::post(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
認証済みの POST リクエストを送信し、新しいQNetworkReply を返します。url とparameters はリクエストの作成に使用される。
も参照のこと:ハイパーテキスト転送プロトコル - HTTP/1.1:POST
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照。
[pure virtual]
void QAbstractOAuth::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray())
認証されたリクエストに必要なヘッダとbody を追加することで、与えられたrequest を認証します。
verb は有効な HTTP 動詞でなければならず、request を送るために使われるものと同じでなければなりません。
[pure virtual invokable]
QNetworkReply *QAbstractOAuth::put(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
認証されたPUTリクエストを送り、新しいQNetworkReply を返します。url とparameters はリクエストの作成に使用されます。
も参照のこと:ハイパーテキスト転送プロトコル - HTTP/1.1:PUT
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QAbstractOAuthReplyHandler *QAbstractOAuth::replyHandler() const
現在使用中のリプライハンドラを返します。
setReplyHandler() およびQAbstractOAuthReplyHandlerも参照して ください。
[signal]
void QAbstractOAuth::requestFailed(const QAbstractOAuth::Error error)
このシグナルはサーバーへのリクエストが失敗したことを示すために発せられます。指定されたerror はリクエストがどのように失敗したかを示す。
QAbstractOAuth2::error() およびQAbstractOAuthReplyHandler::tokenRequestErrorOccurred() も参照 。
[virtual protected]
void QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters)
ウェブブラウザで使用するリソース所有者認証URLを構築する。url がベースURLとして使用され、parameters を使用してクエリが作成される。URL の準備ができると、生成された URL とともにauthorizeWithBrowser() シグナルが発行されます。
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 の所有権を持ちません。カスタム・ネットワーク・アクセス・ マネージャが設定されていない場合は、内部ネットワーク・アクセス・マネージャが使 用されます。このネットワーク・アクセス・マネージャは、認証サーバへの要求と、認証された Web サービスへの要求に使用されます。
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 に対するゲッター関数。
QString QAbstractOAuth::token() const
認証済みリクエストの署名に使用されたトークンを返します。
注釈 プロパティ token のゲッター関数。
setToken() も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。