QOAuth2AuthorizationCodeFlow Class

QOAuth2AuthorizationCodeFlow クラスは、認可コード付与フローの実装を提供します。詳細...

ヘッダ #include <QOAuth2AuthorizationCodeFlow>
CMake: find_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
qmake: QT += networkauth
継承: QAbstractOAuth2

パブリックな型

(since 6.8) enum class PkceMethod { None, Plain, S256 }

プロパティ

パブリック機能

QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
virtual ~QOAuth2AuthorizationCodeFlow()
QUrl accessTokenUrl() const
(since 6.8) QOAuth2AuthorizationCodeFlow::PkceMethod pkceMethod() const
void setAccessTokenUrl(const QUrl &accessTokenUrl)
(since 6.8) void setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)

パブリックスロット

virtual void grant() override
void refreshAccessToken()

シグナル

void accessTokenUrlChanged(const QUrl &accessTokenUrl)

保護された関数

QUrl buildAuthenticateUrl(const QMultiMap<QString, QVariant> &parameters = {})
void requestAccessToken(const QString &code)

再実装されたプロテクト関数

virtual void resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters = {}) override

詳細説明

このクラスは、アクセストークンの取得と更新の両方に使用される認可コード付与フローを実装します。リダイレクトベースのフローなので、ユーザはウェブブラウザにアクセスする必要があります。

リダイレクトベースのフローであるため、このクラスでは適切なリプライハンドラを設定する必要があります。Qt OAuth2 Overview,QOAuthHttpServerReplyHandler,QOAuthUriSchemeReplyHandler を参照してください。

メンバ型のドキュメント

[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod

PKCE(Proof Key for Code Exchange)方式の一覧。

PKCE は、認証コード傍受攻撃のリスクを軽減するためのセキュリティ対策です。そのため、OAuth2 の "Authorization Code" フロー (グラント) と、特にネイティブアプリケーションに関連します。

PKCE は、認可リクエストとアクセストークンリクエストに追加のパラメータを挿入します。これらのパラメータにより、認可サーバーはアクセストークン要求が認可要求を発行したのと同じエンティティから発信されたものであることを確認することができます。

定数説明
QOAuth2AuthorizationCodeFlow::PkceMethod::None255PKCE は使用されません。
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain1Plain PKCE メソッドが使用される。S256 を使用できない場合にのみ使用する。Plain 方式では、コード・チャレンジは コード・ベリファイアに等しい。
QOAuth2AuthorizationCodeFlow::PkceMethod::S2560S256 PKCE メソッドが使用される。これはデフォルトであり、ネイティブ・アプリケーションに推奨される方法である。S256 メソッドでは、コード・チャレンジはコード・ベリファイアの SHA-256 を base64url でエンコードした値になります。

この enum は Qt 6.8 で導入されました。

setPkceMethod() およびpkceMethod()も参照してください

プロパティのドキュメント

accessTokenUrl : QUrl

このプロパティは、認可応答中に受け取った一時コードを変換するために使用される URL を保持する。

こちらも参照してくださいアクセストークンリクエスト

アクセス関数:

QUrl accessTokenUrl() const
void setAccessTokenUrl(const QUrl &accessTokenUrl)

Notifier シグナル:

void accessTokenUrlChanged(const QUrl &accessTokenUrl)

メンバー関数ドキュメント

[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)

親オブジェクトparent を持つ QOAuth2AuthorizationCodeFlow オブジェクトを構築する。

[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)

parent を親として QOAuth2AuthorizationCodeFlow オブジェクトを構築し、manager をネットワークアクセスマネージャとして設定する。

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)

parent を親として QOAuth2AuthorizationCodeFlow オブジェクトを構築し、manager をネットワークアクセスマネージャとして設定する。クライアント識別子はclientIdentifier に設定される。

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)

parent を親として QOAuth2AuthorizationCodeFlow オブジェクトを構築し、manager をネットワーク・アクセス・マネージャとして設定する。認証 URL はauthenticateUrl に設定され、アクセストークン URL はaccessTokenUrl に設定される。

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)

parent を親として QOAuth2AuthorizationCodeFlow オブジェクトを構築し、manager をネットワークアクセスマネージャとして設定する。クライアント識別子はclientIdentifier に、認証 URL はauthenticateUrl に、アクセストークン URL はaccessTokenUrl に設定される。

[virtual noexcept] QOAuth2AuthorizationCodeFlow::~QOAuth2AuthorizationCodeFlow()

QOAuth2AuthorizationCodeFlow インスタンスを破棄します。

QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const

アクセストークンのリクエストに使用された URL を返します。

注: プロパティ accessTokenUrl のゲッター関数です。

setAccessTokenUrl()も参照してください

[protected] QUrl QOAuth2AuthorizationCodeFlow::buildAuthenticateUrl(const QMultiMap<QString, QVariant> &parameters = {})

parameters を使用して、認証リクエストで使用する認証 URL を生成する。

[override virtual slot] void QOAuth2AuthorizationCodeFlow::grant()

再インプリメント:QAbstractOAuth::grant().

The OAuth 2.0 Authorization Frameworkで説明されている認証フローを開始します。

[noexcept, since 6.8] QOAuth2AuthorizationCodeFlow::PkceMethod QOAuth2AuthorizationCodeFlow::pkceMethod() const

現在の PKCE メソッドを返します。

この関数は Qt 6.8 で導入されました。

setPkceMethod() およびQOAuth2AuthorizationCodeFlow::PkceMethodも参照してください

[slot] void QOAuth2AuthorizationCodeFlow::refreshAccessToken()

トークンをリフレッシュするには、この関数を呼び出します。アクセストークンは永久的なものではありません。アクセストークンの取得時に指定された時間が経過すると、アクセストークンは無効になります。

トークンのリフレッシュに失敗し、アクセストークンが存在する場合、ステータスはQAbstractOAuth::Status::Granted に設定され、そうでない場合はQAbstractOAuth::Status::NotAuthenticated に設定されます。

QAbstractOAuth::requestFailed()およびRefresh Tokenも参照のこと

[protected] void QOAuth2AuthorizationCodeFlow::requestAccessToken(const QString &code)

受信したcode にアクセストークンを要求する。ユーザがブラウザで認証に成功すると、レスポンスとしてcode を受信する。

[override virtual protected] void QOAuth2AuthorizationCodeFlow::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters = {})

再実装:QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters).

urlparameters を使用して認証 URL を構築します。この関数は、authorizeWithBrowser() シグナルを発行し、ユーザのインタラクションを要求します。

void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)

アクセストークンのリクエストに使用する URL をaccessTokenUrl に設定します。

注: accessTokenUrl プロパティのセッター関数です。

accessTokenUrl()も参照

[since 6.8] void QOAuth2AuthorizationCodeFlow::setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)

現在の PKCE メソッドをmethod に設定する。

オプションで、length パラメータを使用して、code_verifier の長さを設定することができる。 値は43バイトから128バイトの間でなければならない。コード検証子」自体は、ライブラリによってランダムに生成されます。

この関数は Qt 6.8 で導入されました。

pkceMethod() およびQOAuth2AuthorizationCodeFlow::PkceMethodも参照してください

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.