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() |
保護された関数
QUrl | buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {}) |
void | requestAccessToken(const QString &code) |
再実装された保護された関数
virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {}) override |
保護されたスロット
(since 6.9) void | refreshTokensImplementation() |
詳細説明
このクラスは、アクセストークンの取得と更新の両方に使用される認証コード付与フローを実装します。リダイレクトベースのフローなので、ユーザはウェブブラウザにアクセスする必要があります。
リダイレクトベースのフローであるため、このクラスでは適切なリプライハンドラを設定する必要があります。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::None | 255 | PKCE は使用されません。 |
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain | 1 | Plain PKCE メソッドが使用される。S256 を使用できない場合にのみ使用する。Plain 方式では、コード・チャレンジは コード・ベリファイアに等しい。 |
QOAuth2AuthorizationCodeFlow::PkceMethod::S256 | 0 | S256 PKCE メソッドが使用される。これはデフォルトであり、ネイティブ・アプリケーションで推奨される方法である。S256 メソッドでは、コード・チャレンジは、コード・ベリファイアの SHA-256 を base64url でエンコードした値になります。 |
この enum は 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> ¶meters = {})
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, 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> ¶meters = {})
再実装:QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters).
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バイトの間でなければならない。コード検証子」自体は、ライブラリによってランダムに生成されます。
この関数は 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.