QOAuth2AuthorizationCodeFlow Class

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

Header: #include <QOAuth2AuthorizationCodeFlow>
CMake: find_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
qmake: QT += networkauth
Inherits: 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 の概要QOAuthHttpServerReplyHandlerQOAuthUriSchemeReplyHandler を参照してください。

メンバータイプのドキュメント

[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod

Proof Key for Code Exchange (PKCE) メソッドのリスト。

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

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

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

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

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

プロパティ Documentation

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()

を使用して認証リクエストで使用する認証 URL を生成します: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も参照してください

本書に含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。