이 페이지에서

QOAuth2AuthorizationCodeFlow Class

QOAuth2AuthorizationCodeFlow 클래스는 인증 코드 부여( Authorization Code Grant ) 흐름의 구현을 제공합니다. 더 보기...

헤더: #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> &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) 흐름을 구현합니다. 이는 리디렉션 기반 흐름이므로 사용자는 웹 브라우저에 접속할 수 있어야 합니다.

리디렉션 기반 플로우인 만큼, 이 클래스에서는 적절한 응답 핸들러가 설정되어 있어야 합니다. OAuth 2.0 개요( QOAuthHttpServerReplyHandler) 및 QOAuthUriSchemeReplyHandler 를 참조하십시오.

멤버 유형 문서

[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod

사용 가능한 코드 교환용 증명 키(PKCE) 방법 목록.

PKCE는 인증 코드 가로채기 공격의 위험을 완화하기 위한 보안 조치입니다. 따라서 OAuth2 "인증 코드" 흐름(grant)과 관련이 있으며, 특히 네이티브 애플리케이션에서 중요합니다.

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.