このページでは

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()
(until 6.13) QUrl accessTokenUrl() const
(since 6.8) QOAuth2AuthorizationCodeFlow::PkceMethod pkceMethod() const
(until 6.13) void setAccessTokenUrl(const QUrl &accessTokenUrl)
(since 6.8) void setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)

パブリックスロット

virtual void grant() override
(until 6.13) void refreshAccessToken()

protected 関数

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

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

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

プロテクトされたスロット

(since 6.9) void refreshTokensImplementation()

詳細な説明

このクラスは、アクセストークンの取得および更新の両方に使用される「Authorization Code Grant」フローを実装しています。これはリダイレクトベースのフローであるため、ユーザーはWebブラウザにアクセスできる必要があります。

リダイレクトベースのフローであるため、このクラスでは適切な返信ハンドラを設定する必要があります。『OAuth 2.0の概要』(QOAuthHttpServerReplyHandler )および『QOAuthUriSchemeReplyHandler 』を参照してください。

メンバ型のドキュメント

[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod

利用可能なコード交換用プルーフキー(PKCE)方式の一覧。

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

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

定数値説明
QOAuth2AuthorizationCodeFlow::PkceMethod::None255PKCEは使用されません。これにより、フローは認証コードの傍受に対して無防備な状態になります。認証サーバーがPKCEに対応していない場合にのみ、これを使用してください。
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain1Plain PKCE メソッドが使用されます。S256 を使用できない場合にのみこれを使用してください。Plain メソッドでは、コードチャレンジがコードベリファイアと等しくなるため、認証リクエストを傍受できる者なら誰でもベリファイアを把握できてしまいます。
QOAuth2AuthorizationCodeFlow::PkceMethod::S2560S256 PKCE 方式が使用されます。これはデフォルトの設定であり、ネイティブアプリケーションでは推奨される方式です。S256 方式では、コードチャレンジはコード検証子の SHA-256 ハッシュの base64url エンコードされた値となります。

この列挙型は Qt 6.8 で導入されました。

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

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

[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 のインスタンスを破棄します。

[until 6.13] QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりに `QAbstractOAuth2::tokenUrl()` を使用してください。

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

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

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

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

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

QAbstractOAuth::grant() を再実装します。

『OAuth 2.0 認証フレームワーク』に記載されているとおりに、認証フローを開始します。

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

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

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

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

[slot, until 6.13] void QOAuth2AuthorizationCodeFlow::refreshAccessToken()

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりにQAbstractOAuth2::refreshTokens()を使用してください。

トークンを更新するには、この関数を呼び出してください。

この関数は、refreshTokensImplementation() を呼び出します。

[protected slot, since 6.9] void QOAuth2AuthorizationCodeFlow::refreshTokensImplementation()

この関数は、トークンの更新リクエストを送信します。

更新リクエストが正常に開始された場合、ステータスはQAbstractOAuth::Status::RefreshingToken に設定されます。そうでない場合は、requestFailed()シグナルが発行され、ステータスは変更されません。

トークンの更新処理がすでに進行中の場合、この関数は何の効果も持ちません。

トークンの更新に失敗し、アクセストークンが存在する場合、ステータスは `QAbstractOAuth::Status::Granted` に設定され、アクセストークンが存在しない場合は `QAbstractOAuth::Status::NotAuthenticated ` に設定されます。

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

QAbstractOAuth::requestFailed() およびQAbstractOAuth2::refreshTokens()も参照してください 。

[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) を再実装します。

url およびparameters を使用して、認証用 URL を生成します。この関数は、ユーザーの操作を要求するためにauthorizeWithBrowser() シグナルを発行します。

[until 6.13] void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりにQAbstractOAuth2::setTokenUrl() を使用してください。

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

accessTokenUrl()も参照してください 。

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

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

オプションで、length パラメータを使用してcode_verifier の長さを設定できます。値は43~128バイトの範囲でなければなりません。「コード検証子」自体はライブラリによってランダムに生成されます。

method をPkceMethod::None またはPkceMethod::Plain に設定すると、認証コードの傍受に対する保護が弱まります。

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

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

© 2026 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.